20

ELFファイルに任意のセクションを追加できるようにする必要があります。このプログラムではGPLコードを使用できないため、BFDは問題外です。libelf / gelfを使用してセクションを読み取ることはできますが、これらのドキュメントはかなりまばらであり、セクションを追加する方法がわかりません。誰かがこれを行う方法を知っていますか?自分でELFコードを書きたくありません。

4

5 に答える 5

21

これは古い質問ですが、プロジェクトに適用するのに役立つ実用的な例を見つけました。(誰かがこの質問に遭遇した場合)

SourcewareMailArchivから取得

$ 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
于 2015-06-03T10:24:18.137 に答える
20

ELFファイルヘッダーに関するこの質問には、(おそらく)関連する回答がいくつかあります。objcopyELFファイルにセクションを追加するために使用することについて言及された受け入れられた答え、およびBSD bintoolsobjcopyは、あなたのニーズに合うかもしれないそれのBSDライセンスの実装を持っていると主張します。

于 2009-07-06T17:28:48.547 に答える
3

次のリンクが役立つ可能性があります。

  • チュートリアル「libelfbyExample」には、新しいELFオブジェクトの作成に関する章があります。
  • elftoolchainプロジェクトには、libelfのAPIを詳細に説明するマニュアルページがあります。
于 2011-05-21T04:23:52.697 に答える
2

現在ERESIプロジェクトの一部であるELFshを ご覧くださいhttp://www.eresi-project.org/ 彼らは多くのドキュメントとツールのクールな使用法を持っています。

于 2009-07-24T12:18:42.147 に答える
1

(まだ)自分で試したことはありませんが、libelfの関数elf_newscnを見るとよいでしょう。

于 2010-01-08T01:34:42.907 に答える