Loading article…
| オペレーティング·システム | UnixおよびUnixライク |
|---|---|
| タイプ | 指示 |
| ライセンス | GNU GPL |
objdump は、Unix 系オペレーティング システム上のオブジェクト ファイルに関するさまざまな情報を表示するためのコマンド ラインプログラムです。たとえば、逆アセンブラーとして使用して、実行可能ファイルをアセンブリ形式で表示できます。これは、実行可能ファイルやその他のバイナリ データをきめ細かく制御するためのGNU Binutilsの一部です。objdump は、 BFDライブラリを使用してオブジェクト ファイルの内容を読み取ります。同様のユーティリティには、 Borland TDUMP、Microsoft DUMPBIN、readelfなどがあります。
特定のプラットフォーム (例: macOS ) では、objdump バイナリは実際にはLLVMの objdumpへのリンクであり、コマンドライン オプションと動作が異なる場合があります。 [引用が必要]
例
例えば、
$ objdump -D -M intel file.bin | grep main.: -A20
これは、ファイル「file.bin」を逆アセンブリし、Intel 構文で表示されるアセンブリ コードを使用します。次に、これをgrepにリダイレクトします。grep はメイン関数を検索し、そのコードの 20 行を表示します。
出力例:
4004ed <メイン>:
4004ed: 55 push rbp 4004ee: 48 89 e5 mov rbp , rsp 4004f1: c7 45 ec 00 00 00 00 mov DWORD PTR [ rbp - 0x14 ], 0x0 4004f8: c7 45 f0 01 00 00 00 mov DWORD PTR [ rbp - 0x10 ], 0x1 4004ff: c7 45 f4 02 00 00 00 mov DWORD PTR [ rbp - 0xc ], 0x2 400506: c7 45 f8 03 00 00 00 mov DWORD PTR [ rbp - 0x8 ], 0x3 40050d: c7 45 fc 04 00 00 00 mov DWORD PTR [ rbp - 0x4 ], 0x4 400514: c7 45 ec 00 00 00 00 mov DWORD PTR [ rbp - 0x14 ], 0x0 40051b: eb 13 jmp 400530 < main + 0x43 > 40051d: 8b 05 15 0b 20 00 mov eax , DWORD PTR [ rip + 0x200b15 ] # 601038 <globalA> 400523: 83 e8 01 sub eax , 0x1 400526: 89 05 0c 0b 20 00 mov DWORD PTR [ rip + 0x200b0c ]、eax # 601038 <globalA> 40052c: 83 45 ec 01 add DWORD PTR [ rbp - 0x14 ]、0x1 400530: 8b 05 02 0b 20 00 mov eax 、DWORD PTR [ rip + 0x200b02 ] # 601038 <globalA> 400536: 39 45 ec cmp DWORD PTR [ rbp - 0x14 ]、eax 400539: 7c e2 jl 40051 d < main + 0x30 > 40053b: 5dポップrbp 40053c: c3 ret
40053d: 0f 1f 00 nop DWORD PTR [ rax ]
参照
参考文献
外部リンク
