buuctf-逆向-reverse3

题目

BUUCTF在线评测 reverse3

思路

Exeinfo PE查看程序为32位,无壳

buuctf-逆向-reverse3_第1张图片

打开IDA ,找到有main_0函数,F5得C伪码,分析如何得到 right flag!

buuctf-逆向-reverse3_第2张图片

查看Str2的内容为 e3nifIH9b_C@n@dH

 

知道了Str2,也知道Dest经过变化的代码,我们可以写脚本得到原来变化前的Dest,但是变化前的Dest从v4来,得到v4的sub_4110BE有什么作用我们不清楚,就动态调试看看

buuctf-逆向-reverse3_第3张图片

字符串查找到程序输入入口,F2下断点,运行输入aaaa,运行到sub_4110BE后,返回值YWFhYQ==像Base64加密,经验证,"aaaa" base64加密后就是 "YWFhYQ==",所以函数sub_4110BE的作用就是base64加密

现在已经知道flag的变化过程,逆推flag即可:e3nifIH9b_C@n@dH —> 一个for循环减法 —> base64解密 —> flag

for循环逆解脚本

str2 = list("e3nifIH9b_C@n@dH")
print(str2)
# print(ord(str2[0]))
for i in range(0,len(str2)):
    str2[i]= chr(ord(str2[i])-i) #改为相减

print(''.join(str2))

#ord():字符转ascii码
#chr():ascii码转字符

得到 e2lfbDB2ZV95b3V9

 base64解密e2lfbDB2ZV95b3V9

buuctf-逆向-reverse3_第4张图片

 得到flag{i_l0ve_you}

你可能感兴趣的:(ctf题,系统安全)