逆向新手 WriteUp(动态分析)
WriteUp
题目信息
名称:逆向新手.exe
分类:Reverse
描述:使用动态分析,找到程序flag
题目链接: https://pan.baidu.com/s/1u8bGbKcUF6_gLaw63L3jyA?pwd=h8r5 提取码: h8r5
解题思路
首先使用DIE对文件进行查壳,发现这是一个无壳的32位程序。

于是直接用32位IDA打开该文件,进行反汇编,并在strcmp处设置断点,但在进入该断点之前需要确保输入字符串长度和aZ3h...对应字符串一致,所以我们先获取aZ3h...的字符串。

查看aZ3h...的值,找到对应字符串“Z3h_i5_psu1b_h0_F3jsfg3”

接着按F9,输入刚刚的字符串,程序就会跑到如下位置:


按三下F8执行这三行指令,然后汇编窗口的情况如下:

查看esi保存的地址,跳转到对应地址,并将其转换成字符串,得到如下情况:

如果仔细比对"Z3h_i5_psu1b_h0_F3jsfg3"和"N3v_w5_dgi1p_v0_T3xgtu3"这两个字符串,容易发现其数字没有发生改变,但是字母发生了移位,从Z->N,字母左移12位(或右移14位),满足ROT14加密模式。
那么我们想要的flag也要进行一次ROT14,然后转换成"Z3h_i5_psu1b_h0_F3jsfg3"。
换言之,我们只要对"Z3h_i5_psu1b_h0_F3jsfg3"进行一次ROT14解密,就可以得到我们要的flag,解密结果如下:

最后在源程序中输入该字符串,得到最终flag:

使用工具
DIE
IDA
Koczkatamas
工具链接: https://pan.baidu.com/s/1dzK8gcFjYEvnj_aA0UjBeQ?pwd=ry2d 提取码: ry2d
Flag
TSCTF{L3t_u5_beg1n_t0_R3vers3}
总结
通过本次题目学习到:
动态分析
ROT系列算法

浙公网安备 33010602011771号