*reverse*练习10--很简单的重邮杯预赛

首先要下载ida,并安装使用。

ida可以在信息安全协会的群文件里找到,如果没有可以找作者要~。

这次的题目文件,如果没有题目文件也可以找作者要~。

我们把文件拖进exeinfope,得知是32位文件

 再将文件拖进ida32进行反编译,通过shift+fn+f12组合键,查找字符串,

 

 在字符串窗口,我们看到flag字样,双击跟进

 我们单击aPleaseInputFla,ctrl+x组合键跟进函数,再进行f5+fn组合键进行反编译,得到函数入口。

 我们可以看到函数逻辑很简单,大体意思就是:

v4=0跳转到正确的分支,得到ok,为了使v4=0,那么就让(unsigned __int8)*(&Str + i) + 50 != (unsigned __int8)byte_419000[i]成立,双击byte_419000,得到该数组

 将该数组提取出来

解题脚本如下

a=[0x98, 0x9E, 0x93, 0x99, 0xAD, 0x7B, 0xA0, 0xA0, 0x97, 0xA4,0x7F, 0xA1, 0xA0, 0x99, 0xA1, 0x9E, 0x9B, 0x93, 0x91, 0x84,0x77, 0xAF, 0x00, 0x00]
flag=''
for i in range(22):
flag+=chr(a[i]-50)
print(flag)

 得出flag,这是一道比较简单的逆向题目,大家可以通过这道题掌握ida的使用方法,和python脚本的简单编写。

原文地址:https://www.cnblogs.com/kubopiy/p/14070366.html