【发布时间】:2011-11-20 11:08:14
【问题描述】:
作为我的安全课作业的一部分,我应该“添加一个简单的函数,将“Hello, World!”打印到已编译的 C Linux 二进制文件中”。提供的二进制文件只是一个编译后的 main 函数,其中包含 10 个 NOPs。
通常,我会直接将所需的代码写入NOP 部分,但我们被明确告知要向程序中添加一个新函数。
我不知道该怎么做。我尝试将一些代码放在二进制文件的末尾,但这似乎破坏了它。有人可以帮我解决这个问题吗?
编辑:This question 听起来有些相似。
编辑 2:搜索“ELF injection”会产生许多有趣的结果。
【问题讨论】:
-
看起来他们希望您主要调用您添加的功能。因此,使用 main 和 call 加上你的 hello 创建一个源,然后查看字节。
-
@JoopEggen:有那么容易吗?通过查看字节,我发现二进制文件中存储的不仅仅是函数。