题目描述
菜鸡发现这个程序偷偷摸摸在自己的机器上搞事情,它决定一探究竟
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:

