如何使用objcopy或libelf将elf文件的一部分替换为另一部分,以便将其加载到内存中?

问题描述 投票:1回答:1

我有一个项目,我需要删除ELF文件的一部分,并将其替换为略有修改内容的另一部分。我能够首先删除原始部分,然后使用objcopy添加我想要的部分。但我总是得到警告:

 warning: allocated section `.nv_fatbin' not in segment

这导致该部分没有被加载到存储器中,因此不能实现期望的功能。

添加它并将其重新带入细分市场的最佳方式是什么?

自由?或者这可以使用objcopy来实现吗?

gcc linker elf objcopy
1个回答
2
投票

您可能想要使用objcopy的--update-section选项。

从objcopy手册(https://sourceware.org/binutils/docs/binutils/objcopy.html)中提取:

--update-section sectionname = filename

使用文件filename的内容替换名为sectionname的节的现有内容。该部分的大小将调整为文件的大小。 sectionname的section标志将保持不变。对于ELF格式文件,段到段的映射也将保持不变,这是使用--remove-section后跟--add-section无法实现的。该选项可以多次指定。

注意:这需要binutils v2.26或更高版本。

© www.soinside.com 2019 - 2024. All rights reserved.