我需要能够向 ELF 文件添加任意部分。我不能在这个程序中使用 GPL 代码,所以 BFD 是不可能的。我可以使用 libelf/gelf 来阅读部分,但是这些文档相当稀疏,我不知道如何添加一个部分。有人知道怎么做这个吗?我宁愿不编写自己的 ELF 代码。
最佳答案
我知道这是一个老问题,但我找到了一个工作示例,帮助我将它应用到我的项目中。 (以防有人偶然发现这个问题)
$ 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
关于c - 将部分添加到 ELF 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1088128/