如何通过添加自定义节和符号来编辑ELF

2024-06-25 06:00:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我想获取一个elf文件,然后根据内容添加一个包含数据的部分并添加符号。使用objcopy--addsection,我可以添加一个包含我想要的内容的节。我不知道如何添加符号

无论如何,我不希望为了做我想做的事情而运行一系列的程序,而是用c或python本机实现。在pyelftools中,我可以查看elf,但我不知道如何编辑和编辑elf

如何在Python或C中添加自定义节和符号


Tags: 文件数据程序编辑内容符号事情elf
1条回答
网友
1楼 · 发布于 2024-06-25 06:00:01

ELF与程序存储在其中的符号无关。它只是一种对一切进行编码的格式。符号通常由编译器生成,如C编译器、fortran编译器或汇编程序,而节由编程语言固定(例如,C编译器仅使用有限数量的节,具体取决于程序中使用的数据类型)。有些编译器有将变量关联到一个段的扩展,因此Link将以某种方式考虑它的特殊性。编译器/汇编程序生成一个符号表,以便链接器能够使用它来解析依赖项

如果要向程序中添加符号,最简单的方法是创建一个包含要添加到可执行文件的节和符号的汇编程序模块,然后将其组装并链接到最终的可执行文件

阅读ld(1)程序(链接器),以及它如何使用链接脚本(指导链接器在链接时如何组织不同模块中的节的特殊隐藏文件)来处理对象文件中的节。ELF只是一种格式。如果您使用链接脚本并在汇编程序的帮助下,您将能够添加您想要的任何部分或修改程序使用的普通内存映射

相关问题 更多 >