如何使用objcopy或libelf将elf文件的一部分替换为另一部分,以便将其加载到内存中?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用objcopy或libelf将elf文件的一部分替换为另一部分,以便将其加载到内存中?相关的知识,希望对你有一定的参考价值。
我有一个项目,我需要删除ELF文件的一部分,并将其替换为略有修改内容的另一部分。我能够首先删除原始部分,然后使用objcopy添加我想要的部分。但我总是得到警告:
warning: allocated section `.nv_fatbin' not in segment
这导致该部分没有被加载到存储器中,因此不能实现期望的功能。
添加它并将其重新带入细分市场的最佳方式是什么?
自由?或者这可以使用objcopy来实现吗?
答案
您可能想要使用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或更高版本。
以上是关于如何使用objcopy或libelf将elf文件的一部分替换为另一部分,以便将其加载到内存中?的主要内容,如果未能解决你的问题,请参考以下文章