簡體   English   中英

將部分添加到ELF文件

[英]Adding section to ELF file

我需要能夠將任意部分添加到ELF文件中。 我不能在這個程序中使用GPL代碼,所以BFD是不可能的。 我可以使用libelf / gelf來閱讀部分,但文檔相當稀疏,我無法弄清楚如何添加一個部分。 有人知道怎么做這個嗎? 我寧願不寫我自己的ELF代碼。

關於ELF文件頭的這個問題中有一些(可能)相關的答案。 接受的答案提到使用objcopy將部分添加到ELF文件, BSD bintools聲稱擁有可能適合您需要的BSD許可的objcopy實現。

我知道這是一個老問題,但我找到了一個幫助我將它應用於我的項目的工作示例。 (如果有人偶然發現這個問題)

取自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

以下鏈接可能很有用:

看看ELFsh,它現在是ERESI項目的一部分http://www.eresi-project.org/他們有很多文檔和很酷的用途。

還沒有嘗試過(但)我自己,但你可能會看看libelf中的函數elf_newscn

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM