题目: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


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

这是作比较的数值,发现要比较的数值为:
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]
网友评论