バイナリにソース ファイルへの参照はありますか? バイナリで文字列を実行しようとしましたが、リストされているソースファイルへの参照が見つかりませんでした...
52636 次
3 に答える
32
objdump
ソースファイル名を参照する、バイナリにコンパイルされた DWARF デバッグ情報を使用します。バイナリがデバッグ情報を使用してコンパイルされていない場合、またはobjdump
ソース ファイルが見つからない場合は、出力にソース コードが含まれず、アセンブリのみが得られます。
strings
DWARF は圧縮を使用するため、バイナリでを使用する場合、ソース ファイル名は表示されません。
于 2010-03-24T22:31:03.810 に答える
12
バイナリ内の dwarf 情報には、命令 (実際には命令ポインターまたは IP) とソース ファイルおよび行番号の間のマッピングが格納されます。ソース ファイルは完全なパスを使用して指定されるため、バイナリを移動しても見つけることができます。この情報を表示するには、使用できますobjdump --dwarf=decodedline <binary>
(もちろん、バイナリは でコンパイルする必要があります-g
)。
あなたがそれを言うobjdump -S <binary>
と、このドワーフ情報を使用して、逆アセンブリとともにソースコードを提供します.
于 2012-12-03T18:42:32.697 に答える