题目描述

菜鸡发现这个程序偷偷摸摸在自己的机器上搞事情,它决定一探究竟

Solution

先使用 DIE 查壳,发现这是 ELF64 文件:

011-1.png

使用strings看看可打印字符:

011-2.png

我们把它放入 IDA 进行分析:

011-3.png

程序会打开文件/tmp/flag.txt,然后把 Flag 写入后,在remove()掉该文件。我们的一个思路,是用动态调试,在执行到remove()之前,看看/tmp/flag.txt的内容:

011-4.png

我们运气比较好,在执行到中间某个循环的时候,Flag 就已经出现了。


另一个方法是使用 IDA 打补丁。我们把下面那个for循环里多余的fseek()fprintf()加上remove()给 NOP 掉:

011-5.png

反编译后的代码是这样的:

011-6.png

依次点击 Edit → Patch program → Apply patches to … 保存为一个新的补丁文件,运行即可出 Flag:

011-7.png