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