题目描述
菜鸡发现这个程序偷偷摸摸在自己的机器上搞事情,它决定一探究竟
Solution
先使用 DIE 查壳,发现这是 ELF64 文件:
使用strings
看看可打印字符:
我们把它放入 IDA 进行分析:
程序会打开文件/tmp/flag.txt
,然后把 Flag 写入后,在remove()
掉该文件。我们的一个思路,是用动态调试,在执行到remove()
之前,看看/tmp/flag.txt
的内容:
我们运气比较好,在执行到中间某个循环的时候,Flag 就已经出现了。
另一个方法是使用 IDA 打补丁。我们把下面那个for
循环里多余的fseek()
和fprintf()
加上remove()
给 NOP 掉:
反编译后的代码是这样的:
依次点击 Edit → Patch program → Apply patches to … 保存为一个新的补丁文件,运行即可出 Flag: