逆アセンブラする方法

objdumpを使う


オブジェクトファイル等の場合

$ gcc -c hoge.c
$ objdump -d hoge.o

$ gcc -o hoge hoge.c
$ objdump -d hoge
〜省略〜

この場合は関数名とかが分かる。
fileで見てELFになっていればOK。


しかし生のバイナリデータでは上記の方法ではダメ。
まずはobjcopyを使ってELFをバイナリデータに変換する。

$ objcopy -O binary hoge
$ objdump -d hoge
objdump: hoge: File format not recognized


この場合はオプションが変更になる。

$ objdump -b binary -m i386  -D hoge
〜省略〜

この場合はELFの様に色々な情報がないので関数名なんか分からない。