首页 > 其他分享 >[ACTF新生赛2020]usualCrypt 1

[ACTF新生赛2020]usualCrypt 1

时间:2023-05-05 22:12:38浏览次数:52  
标签:加密 ba base64 2020 Str usualCrypt zMXHz3TIgnxLxJhFAdtZn2fFk3lYCrtPC2l9 ACTF sub

日常查壳:

32位,运行看看:

(有点嚣张,但不多),任意输入退出。

进IDA看主函数:

进入主函数后,首先是读入一个字符串,然后是对该字符串进行sub_401080方法加密,最后是对比。

那么我们跟进方法,看看是什么加密类型:

第一眼下去还多了一个方法sub_401000(),跟进看看:

不多说,检查这两的内存:

可以看到这两是在一个内存段中的,首先先进行标砖码的交换也就是sub_401000()方法,上脚本:

int main(){
    string ba = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
    for (int i = 6; i < 15; i++) {
        char a = ba[i];
        ba[i] = ba[i+10];
        ba[i+10] = a;
    }
    cout << ba;
    return 0;
}

得到新的编码“ABCDEFQRSTUVWXYPGHIJKLMNOZabcdefghijklmnopqrstuvwxyz0123456789+/”

根据新的编码进行加密,然后返回加密的密文:跟“zMXHz3TIgnxLxJhFAdtZn2fFk3lYCrtPC2l9”比较。也就说“zMXHz3TIgnxLxJhFAdtZn2fFk3lYCrtPC2l9”就是加密后的密文,所以用它来解密就好了,这里注意,解密也是用新的编码来解密:

上脚本:

import base64

# 自定义base64编码解码
Str = list("ABCDEFQRSTUVWXYPGHIJKLMNOZabcdefghijklmnopqrstuvwxyz0123456789+/")  # 自定义base64码
model = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"  # 标准base64码
Str = ''.join(Str)
enc = "zMXHz3TIgnxLxJhFAdtZn2fFk3lYCrtPC2l9".swapcase()
dec = ""
for i in range(len(enc)):
    dec += model[Str.find(enc[i])]
print(base64.b64decode(dec))

拿到flag{bAse64_h2s_a_Surprise}收工。

标签:加密,ba,base64,2020,Str,usualCrypt,zMXHz3TIgnxLxJhFAdtZn2fFk3lYCrtPC2l9,ACTF,sub
From: https://www.cnblogs.com/TFOREVERY/p/17375514.html

相关文章

  • [WUSTCTF2020]level2 1
    查壳:32位,有个小壳,怎么办,脱了呗,还能这么办(方法见前文)https://www.cnblogs.com/TFOREVERY/p/17366210.html脱壳后,进入IDA找主函数:脸上就是flag{Just_upx_-d}收工。......
  • [MRCTF2020]Transform 1
    查壳:64位,先看看运行有问题吗:任意输入给你弹了一个wrong进IDA看看:解释:输入一个字符串,要满足字符串的长度为33,不然就报错。接下来是在输入的字符串中拿出特定的字符,进行异或后得到一个新的字符串,最后与特定的字符串对比。这样看来,我们先看要对比的字符串:还不短,但是我们只......
  • 2020ICPC南京J
    以前没写过势能线段树,然后错了114514个地方,我有罪。#include<bits/stdc++.h>usingnamespacestd;constintN=200013;inta[N];structsegtree{#definemid((l+r)>>1)#definelsx<<1,l,mid#definersx<<1|1,mid+1,r#definelctr[x<<1]#definerct......
  • 20201230张国强实验三
    免杀原理1.基础问题回答杀软是如何检测出恶意代码的?基于特征码的静态扫描技术在文件中寻找特定的十六进制字符串,如果找到,就可判定文件感染了某种病毒。启发式杀毒技术病毒要达到感染和破坏的目的,通常的行为都会有一定的行为和特征,所以可以通过分析相关的病毒指令,判......
  • diamond makedb --in CAZyDB.07312020.fa --db CAZyDB.07312020
    这条语句是在使用diamond软件建立基于cazydb.07312020.fasta文件的数据库,该数据库将用于宏基因组分析中。cazydb是一个专门用于碳水化合物活性酶的数据库。diamond软件则是一款快速而准确的搜索工具,可用于比对大规模的dna或蛋白质序列数据。通过此命令建立的数......
  • 网络对抗实验六 MSF应用基础--20201313
    《网络对抗技术》——Exp6MSF应用基础目录《网络对抗技术》——Exp6MSF应用基础一、实践内容二、问题回答三、实践过程实验准备:1、一个主动攻击实践ms08_067_netapi2、一个针对浏览器的攻击ms10_018_ie_behaviors3、一个针对客户端的攻击Wireshark4、成功应用一个辅助模块sniff......
  • 20201306 Exp6 MSF应用基础
    一、实践内容二、实践原理三、实践过程1、一个主动攻击实践ms08_067_netapims17_0102、一个针对浏览器的攻击ms14_064ms17-0103、一个针对客户端的攻击AdobeWireshark4、成功应用一个辅助模块sniffer嗅探portscan端口扫描MSF使用nmap四、实践问题回答五、离实践......
  • Exp6 MSF应用基础 20202211王宏韬
    目录1基础问题回答2实验总结与体会3离实践缺少什么4实践过程记录主动攻击实践针对浏览器攻击针对adobe客户端攻击应用辅助模块tcp端口扫描   1基础问题回答 exploit:利用发现的安全漏洞或配置弱点对靶机进行攻击,将payload发送给靶机。payload:植入靶机......
  • Exp6 MSF应用基础 20201331黄文刚
    Exp6MSF应用基础一、实验原理(1)MSF简介Metasploit是一个免费的、可下载的框架,通过它可以很容易地获取、开发并对计算机软件漏洞实施攻击。它本身附带数百个已知软件漏洞的专业级漏洞攻击工具。(2)程序特点这种可以扩展的模型将负载控制,编码器,无操作生成器和漏洞整合在一起,使M......
  • Exp6 MSF应用基础-20201324
    目录1实践内容1.0安装靶机1.1一个主动攻击实践,尽量使用最新的类似漏洞;主动攻击实践MS08-0671.2一个针对浏览器的攻击,尽量使用最新的类似漏洞;1.2.1针对浏览器的攻击ms06_013_createtextrange1.2.2针对浏览器的攻击MS14-0641.3一个针对客户端的攻击,如Adobe或office,尽量使用最......