re学习第3天(求解ez_re.exe)

先用Exeinfo PE来检测是多少位,是否带壳

 看见是带UPX压缩壳我们用upx脱壳工具来进行,将该文件移入upx文件夹

在上方写cmd进入指令板;

 输入上面的指令.\upx.exe -d .\ez_re.exe显示;

 这里应显示

Unpacked 1 files.(我是提前就解码了),获得没有壳的文件;

 用ida64位打开,按下tap键,可以看见源代码;

 

我们来分析源代码的逻辑:从_main()函数中的scanf函数开始分析;

S要进行两次加密一次是在for循环进行f3加密,后在进行funs加密;

我们要检查一下这两个加密代码先看f3;

 发现是将输入的字符串顺序颠倒;

我们写一个脚本(这里不要忘记for循环,因为我忘了😂);

 在偶数次循环之后倒置的情况消失了;

 算是没加密;

我们再看func加密算法

 当你了解base64算法,就明白他是base64加密,

应为有个明显的标志,就是绿色字符串

我们可以想想为什麽解码后就是flag,

可以看到在strcmp是比较s与a,

再往上看发现a也进行过base64加密,

那我们将a加密字符串获取出来

我们用base64解码工具解码(网上有)

 获取到a的源字符串

HDCTF{Y0u_h@v2_/\/\@57er3d_7he_r3v3rs3}

把这个当作s再进行一次base64加密,可以与a相同

则HDCTF{Y0u_h@v2_/\/\@57er3d_7he_r3v3rs3}为flag

 此题已解;

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值