linux でプログラムをdisassembleする方法のメモです。
定番のdisassembler、objdump コマンドを使います。
$ objdump -d バイナリファイル > dump.txt
objdump コマンドは、大抵 binutils パッケージに入ってます。
通常のプログラムはもちろん、共有ライブラリ *.so とか
$ objdump -d /lib/libc.so.6
カーネルモジュール *.ko も逆アセンブルできます。
$ objdump -d /lib/modules/2.6.33-orig/kernel/arch/x86/oprofile/oprofile.ko
gdb で、"disas"コマンドを使います。
たとえば ファイル /bin/hoge のアドレス0x1000から0x2000を逆アセンブルする場合、
$ gdb /bin/hoge
(gdb) disas 0x1000 0x2000