我正在使用 Libelf 和 Elfio 尝试向 ELF 文件添加一个新部分。我希望它是可执行的,就像.text
.
这是我的问题:使用Libelf,一旦我加载(elf_begin()
)、更新(elf_update()
)和释放(elf_end()
)我的ELF,它就停止可执行(启动时出现段错误)。readelf -S
显示部分但也返回错误:
readelf: Warning: the .dynamic section is not contained within the dynamic segment
我没有在 Libelf 中找到任何可以将该部分“添加”.dynamic
到该DYNAMIC
段的功能。
但是我可以使用 Elfio(使用segment->add_section_index()
函数)来做到这一点,但是我必须手动将每个其他部分添加到每个其他部分,因为 Elfio 在加载 ELF 时似乎会覆盖它们。
有没有人对这些图书馆有任何经验?
我的最终目标是能够在 ELF 中创建一个新的可执行部分,并修改其入口点以跳转并直接执行该新部分,以创建一个打包程序。