可能将可执行节/段添加到ELF二进制文件?

问题描述:

使用objcopy --add-section很容易添加空白部分。 但是,我想添加的部分可以正常.text部分和可执行文件加载。这意味着需要修改段标题。任何建议?可能将可执行节/段添加到ELF二进制文件?

可能将可执行文件段/段添加到ELF二进制文件?

这在理论上是可能的,但在实践中是不可能的:ELF文件具有复杂的内部结构,这些都需要重建。

这意味着需要修改段头

修改Phdr表是很容易的:它只是一个固定的表。但是您必须移动其他细分,并更新指向它们的所有内部偏移,这是很难的部分。

+0

我想另外一个选择,不确定是否可以达到我的预期:在文件末尾添加一个新的可执行部分,并将现有的加载段(覆盖.text部分)扩展到新文件的末尾。然而,修补后,二进制文件无法加载......不知道其他可能的解决方案?在.text之后移动部分和段可能可行,但我需要编写一个工具来调整后面部分/段中的所有偏移量。 – Ivellios 2015-03-16 05:20:06