objdump -d example.o
12
3
オブジェクトファイルがあり、それを逆アセンブルしようとしています。 私が使用するとき:
objdump -d example.o
`elf64-x86-64`のファイル形式のコードでアセンブリを取得します。
これをARMに分解しようとしていますが、これをどうやってやるのですか?
4 Answer
8
ARMコードを逆アセンブルしたい場合は、ARMツールチェーンが必要です。これが私が得たものです。
これができたら、objdumpの代わりにarm-elf-objdumpを使用できます。 私が使用したコマンドは
arm-elf-objdump -D -b binary -marm binaryfile.dat
マンページを見ると、「-b」の後にファイルタイプが表示されます。 .oファイルを分析したい-bを伝える方法がわかりません。 「-marm」は、CPUがARMであることを示します。
これがお役に立てば幸いです。
6
適切なターゲットで `binutils`をコンパイルして、ARMを逆アセンブルする方法を知っているbinutils objdumpバイナリを取得します。
たとえば、 。/ configure --enable-targets = all
。
ターゲットを選択し、ターゲットに対応した新しい「objdump」バイナリを作成して使用します。 ターゲティングの詳細については、「binutils / README」ファイルを参照してください。
objdump -D t3c # stock binary objdump: t3c: File format not recognized
vs.
./../../binutils-2.22/binutils/objdump -D t3c # latest compiled from source with all targets In archive t3c: t3c:arm: file format mach-o-le Disassembly of section .text: 00002d94 : 2d94: e59d0000 ldr r0, [sp] ...
3
最初に `arm-linux-gnueabi-gcc`を使用して、armのファイルをクロスコンパイルする必要があります。 ネイティブobjdumpを使用しています。 armオブジェクトファイルを逆アセンブルするには、 `arm-linux-gnueabi-objdump`を使用します。 お役に立てれば