23

最新の Linux では、ほとんどすべてのオブジェクトが取り除かれ、2 つの部分 (2 つのファイル) に分割されます。1 つ目は実行可能ファイルそのもので、2 つ目は元の ELF から削除されたデバッグ シンボルです。そのようなファイルはで作成されます

objcopy --only-keep-debug original.elf binary.dbg
mv original.elf binary
objcopy --strip-debug binary

デバッグ情報を含む ELF ファイルにマージするbinaryにはどうすればよいですか? binary.dbgストリップされていない元のバイナリを再作成したい。バイト単位でオリジナルと同じにすることはできませんが、内部にデバッグ シンボルを含める必要があります。

PS はい、セクションについては知ってgnu.debuglinkいますが、一部のデバッガー (etnus) と逆アセンブラーでは機能しません (objdump はシンボル情報を復元できません)。

4

1 に答える 1

12

ELF の場合、elfutilsパッケージにeu-unstripは、ジョブを実行するというツールが含まれています。あなたの例のコンテキストでは:

eu-unstrip binary binary.dbg

binary.dbgバイナリ シンボルとデバッグ シンボルの両方が含まれるようになりました。見つけた場合は、ドキュメントへの参照を含めます...

于 2016-07-28T19:59:02.257 に答える