将部分添加到ELF文件

c47*_*57p 18 c linux elf

我需要能够将任意部分添加到ELF文件中.我不能在这个程序中使用GPL代码,所以BFD是不可能的.我可以使用libelf/gelf来阅读部分,但文档相当稀疏,我无法弄清楚如何添加一个部分.有人知道怎么做这个吗?我宁愿不写我自己的ELF代码.

Mar*_*off 19

关于ELF文件头的这个问题中有一些(可能)相关的答案.接受的答案提到objcopy用于向ELF文件添加部分,BSD bintools声称拥有BSD许可的实现objcopy可能适合您的需求.


Ben*_*Ben 16

我知道这是一个老问题,但我找到了一个帮助我将它应用于我的项目的工作示例.(如果有人偶然发现这个问题)

取自Sourceware Mail Archiv

$ echo 'int main() { puts ("Hello world"); }' | gcc -x c - -c -o hello.o

$ echo "this is my special data" >mydata

$ objcopy --add-section .mydata=mydata \
          --set-section-flags .mydata=noload,readonly hello.o hello2.o

$ gcc hello2.o -o hello

$ ./hello
Hello world

$ objdump -sj .mydata hello
Run Code Online (Sandbox Code Playgroud)

  • 您是一个愚蠢的评论和一个愚蠢的答案,如果他需要添加一个部分,我想他也想访问它。这只是应用逻辑。 (2认同)