1. ホーム
  2. c++

[解決済み] Linuxでバイナリ実行ファイルを逆アセンブルしてアセンブリコードを取得する方法は?

2022-10-15 19:23:40

質問

ディスアセンブラを使うように言われました。これは gcc には何か組み込まれているのでしょうか?これを行う最も簡単な方法は何ですか?

どのように解決するのですか?

私は gcc は主にコンパイラなので、そのためのフラグはないと思いますが、GNU 開発ツールのもうひとつにはあります。 objdump を取ります。 -d / --disassemble のフラグを立てます。

$ objdump -d /path/to/binary

分解するとこのようになります。

080483b4 <main>:
 80483b4:   8d 4c 24 04             lea    0x4(%esp),%ecx
 80483b8:   83 e4 f0                and    $0xfffffff0,%esp
 80483bb:   ff 71 fc                pushl  -0x4(%ecx)
 80483be:   55                      push   %ebp
 80483bf:   89 e5                   mov    %esp,%ebp
 80483c1:   51                      push   %ecx
 80483c2:   b8 00 00 00 00          mov    $0x0,%eax
 80483c7:   59                      pop    %ecx
 80483c8:   5d                      pop    %ebp
 80483c9:   8d 61 fc                lea    -0x4(%ecx),%esp
 80483cc:   c3                      ret    
 80483cd:   90                      nop
 80483ce:   90                      nop
 80483cf:   90                      nop