我需要能够将任意部分添加到ELF文件中.我不能在这个程序中使用GPL代码,所以BFD是不可能的.我可以使用libelf/gelf来阅读部分,但文档相当稀疏,我无法弄清楚如何添加一个部分.有人知道怎么做这个吗?我宁愿不写我自己的ELF代码.
Mar*_*off 19
关于ELF文件头的这个问题中有一些(可能)相关的答案.接受的答案提到objcopy用于向ELF文件添加部分,BSD bintools声称拥有BSD许可的实现objcopy可能适合您的需求.
Ben*_*Ben 16
我知道这是一个老问题,但我找到了一个帮助我将它应用于我的项目的工作示例.(如果有人偶然发现这个问题)
$ 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)