逆向新手 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系列算法

posted @ 2025-03-08 17:03  Binary-0  阅读(59)  评论(0)    收藏  举报