实验吧-逆向-10000000

题目:http://www.shiyanbar.com/ctf/1884

一、下载附件,打开运行

随便输入啥,回车,发现一下就退出了。。。

二、PEID

拖入PEID,显示如下


三、IDA

使用32-bit IDA打开附件


F5反编译下,观察

发现主要部分是将v14中每个字符与0x80或运算,然后与v4比较,关键值就是v4

四、OD

拖入OD分析,找到关键代码部分,可以通过IDA找到



左边为地址


1.把数据压入栈中
2.
3.等待用户输入
4.设置好断点,输入123123,开始测试,成果如下:

while循环部分:

比较部分:

进入call

call函数
1

这是异或0x80后生成的数值

2

这是作比较的数值,发现要比较的数值为:
E6 EC E1 E7 BA F4 E5 F3 F4 F4 E5 F3 F4
既一开始的压栈数据。
我们只需将其异或0x80即可。

五、代码

a = ''
code=(0xE6,0xEC,0xE1,0xE7,0xBA,0xF4,0xE5,0xF3,0xF4,0xF4,0xE5,0xF3,0xF4)  
for i in code:  
    i=i^0x80  
    a += chr(i)

print(a)

结果

flag:testtest
[Finished in 0.1s]

你可能感兴趣的:(实验吧-逆向-10000000)