Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Binary 向Linux二进制文件添加函数_Binary_Patch - Fatal编程技术网

Binary 向Linux二进制文件添加函数

Binary 向Linux二进制文件添加函数,binary,patch,Binary,Patch,作为我的安全课程作业的一部分,我应该“添加一个简单的函数,打印”你好,世界!“到已编译的C Linux二进制文件”。提供的二进制文件只是一个编译的main函数,其中包含10个NOPs 通常,我会直接将所需的代码写入NOP部分,但我们被明确告知要向程序中添加一个新函数 我不知道怎么做。我试图在二进制文件的末尾添加一些代码,但这似乎破坏了它。有人能帮我澄清一下吗 编辑:听起来有点类似 编辑2:搜索“ELF注入”会产生许多有趣的结果。您可以结束主函数,然后在NOPs中启动一个新函数——但在结束主函数之

作为我的安全课程作业的一部分,我应该“添加一个简单的函数,打印”你好,世界!“到已编译的C Linux二进制文件”。提供的二进制文件只是一个编译的
main
函数,其中包含10个
NOP
s

通常,我会直接将所需的代码写入
NOP
部分,但我们被明确告知要向程序中添加一个新函数

我不知道怎么做。我试图在二进制文件的末尾添加一些代码,但这似乎破坏了它。有人能帮我澄清一下吗

编辑:听起来有点类似


编辑2:搜索“ELF注入”会产生许多有趣的结果。

您可以结束主函数,然后在NOPs中启动一个新函数——但在结束主函数之前,请调用在主函数结束后添加的新函数

也许您需要了解更多信息(特别是如果您想让一个程序能够“感染”任何Linux二进制文件,而不仅仅是简单的Linux二进制文件)


LinuxABI也可能很有用,而且

看起来他们希望您在main中调用添加的功能。所以,用main with call加上hello生成一个源代码,然后查看字节。@JoopEggen:有那么简单吗?从字节的角度来看,我认为二进制中存储的比函数多得多。这限制了新函数的大小,不是吗。我认为添加一个新函数而不是仅仅覆盖
NOP
s的想法是,新函数可能比可用的
NOP
s更大……你能推荐一些好的教程吗(甚至可能与我的问题直接相关)?我不明白您是否只想为您得到的特定二进制文件解决一次问题(那么,一个简单的十六进制编辑器就足够了;但您需要了解ELF可执行文件,
objdump
应该会有很大帮助)或者如果你声称制造了一种能够修改任何Linux ELF可执行文件的病毒。目前,我只是想解决特定二进制文件的问题,尽管任务的目标当然是真正了解发生了什么。