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

无论如何,我宁愿不运行一系列程序来执行我想要的操作,而是本机使用c或python来执行。在pyelftools中,我可以查看一个elf,但无法弄清楚如何编辑和elf。

如何在Python或C中添加自定义部分和符号?

最佳答案

ELF与程序中存储的符号无关。它只是一种编码所有内容的格式。符号通常由编译器(如C编译器,fortran编译器或汇编器)生成,而各节则由编程语言固定(例如,C编译器仅使用有限数量的节,具体取决于您所使用的数据类型)程式)。一些编译器具有将变量关联到节的扩展,因此链接将以某种方式将其视为特殊。编译器/汇编器会生成一个符号表,以使链接器能够使用它来解决依赖关系。

如果要将符号添加到程序中,这是使用要添加到可执行文件中的节和符号创建汇编模块的最简单方法,然后对其进行汇编并链接到最终的可执行文件。

阅读有关ld(1)程序(链接器)以及如何使用链接脚本(指导链接器如何在链接时组织不同模块中的节的特殊隐藏文件)处理对象文件中的节的信息。 ELF只是一种格式。如果使用链接脚本和汇编程序的帮助,则可以添加所需的任何部分,或修改程序用来拥有的常规内存映射。

关于python - 如何通过添加自定义部分和符号来编辑ELF,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59717918/

10-11 22:13
查看更多