PHDay CTF 2012 Quals BIN100

bin100为2进制分析题

我们直接运行程序发现

提示我们出错

载入IDA。发现主要5个函数。

函数我们分别重命名为f1->f5

读代码。5个函数功能大概如下,f1到f4函数为字符串变幻。f5函数实际最终调用了exec(calc)并且死循环。

f1 input 8 return 0

f2 input 32 return 0

f3 input>=16 xor first 16 return 1

f4 8>==xor return 0

f5 call calc exec return 0

但源程序这5个函数都没调用,只是取了地址

同时结合题目提示,得知此题是要我们把NOP给填充补全

这里我们填上call address即可

一共4处NOP需要填充

最终,邓大侠完美找到了填充顺序

顺序为

f4–>f1–>f2-–   >f3

重新运行程序即可得到KEY

需要注意个是中间有个资源释放和本题无关。