Fgken Blog

2012-11-07

アセンブラコード ←→ エルフ形式 ←→ バイナリ ←→ 逆アセンブラ 相互変換

| 03:03

-アセンブラコードをエルフ形式へ

arm-none-eabi-as hello.S

-エルフ形式からバイナリ

arm-none-eabi-objcopy -O binary a.out hello.bin

-バイナリからディスアセンブル

arm-none-eabi-objdump -b binary -m arm -D hello.bin

-エルフ形式をディスアセンブル

arm-none-eabi-objdump -m arm -D hello.elf

-バイナリからエルフ形式へ

arm-none-eabi-objcopy -I binary -O elf32-little hello.bin hello.elf

※-Oとか-mオプションの指定はあくまで一例です。それぞれの目的に応じて、設定してください。

-objdump -b

arm-none-eabi-objdump: supported targets: elf32-littlearm elf32-bigarm elf32-little elf32-big srec symbolsrec verilog tekhex binary ihex

-objdump -m

arm-none-eabi-objdump: supported architectures: arm armv2 armv2a armv3 armv3m armv4 armv4t armv5 armv5t armv5te xscale ep9312 iwmmxt iwmmxt2

-objcopy -O

arm-none-eabi-objcopy: supported targets: elf32-littlearm elf32-bigarm elf32-little elf32-big srec symbolsrec verilog tekhex binary ihex

-確認方法

arm-none-eabi-readelf [ELF File]

hexdump [ELF or Binary File]

--- 2013/2/7 追記 ---

x86の生バイナリコードをディスアセンブルするときは

objdump -D -b binary -m i8086 hello.bin

もしくは、-Mで指定。

objdump -D -b binary -m i386 -M addr16,data16 hello.bin

トラックバック - http://d.hatena.ne.jp/ken_2501jp/20121107/1352311439