2016-10-25 2 views
2

ELF64実行可能ファイルの.textセクション内のどこかに関数fnがあるとします。 fn関数のELFファイルの先頭からのオフセット(バイト単位)を知る方法はありますか?リンク時にどのVAが再配置されたのか、ELFファイル内でのその位置を知る必要はありません。ELFでファンクションの開始オフセットを検索

答えて

2

通常、ELFファイルを直接解析したり、objdumpやreadelfなどのツールの出力を結合することができます。

具体的には、「readelf -S ファイル」で、.textセクションのオフセットと仮想アドレスを取得できます。 さらに、 'readelf -s ファイル'というシンボルを表示することができます。実行ファイルは削除されず、関数が表示されます(静的でないか、匿名の名前空間ではない)ので、関数とその仮想アドレスを見つける必要があります。 VA +は、あなたが一般的に "オフライン" それをしたいと仮定し

ザッツオフセットの.textの.text -

は、このようにあなたは

FNシンボルオフセット= FN記号VAを経由してオフセットを計算することができますツール。ストリップされていないELFファイルにアクセスできない場合や、ELFファイルの一部だけがメモリに残っているため、「オフライン」の情報を追加しないと、おそらく不可能になります。

関連する問題