我有一个目标文件,正试图对其进行反汇编。当我使用:使用objdump进行ARM体系结构:反汇编到ARM
objdump -d example.o
我得到了代码的组件的elf64-x86-64
的文件格式。
我想把这个反汇编成ARM,我该如何去做这件事?
我有一个目标文件,正试图对其进行反汇编。当我使用:使用objdump进行ARM体系结构:反汇编到ARM
objdump -d example.o
我得到了代码的组件的elf64-x86-64
的文件格式。
我想把这个反汇编成ARM,我该如何去做这件事?
安装ELDK并使用arm-linux-objdump。您正尝试使用仅知道x86的程序反汇编ARM指令。
编译binutils
与正确的目标(s)得到binutils objdump二进制文件知道如何反汇编ARM。
http://www.gnu.org/software/binutils/
./configure --enable-targets=all
例如。
选择您的目标,制作并使用您的目标感知的新objdump
二进制文件。有关定位的更多信息,请参阅binutils/README
文件。
objdump -D t3C# stock binary
objdump: t3c: File format not recognized
与
./../../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 <start>:
2d94: e59d0000 ldr r0, [sp]
...
如果你想要做拆机ARM代码,你最好有一个ARM工具链,这是我的了:
http://bb.osmocom.org/trac/wiki/toolchain
你有这个之后,你可以使用arm-elf-objdump而不是objdump。 我用的命令是
arm-elf-objdump -D -b binary -marm binaryfile.dat
如果你看看手册页,你会发现“-b”后面的文件类型。对不起,我不知道如何告诉-b你想分析一个.o文件。 “-marm”会告诉CPU是ARM。
希望这可以帮助你。
您必须首先使用arm-linux-gnueabi-gcc
交叉编译arm文件。您正在使用本地objdump。要拆解ARM目标文件,请使用 arm-linux-gnueabi-objdump
。希望这有帮助
只是为了澄清,你是说你有一个x86_64可执行文件/目标文件,并希望它反汇编为ARM指令? – dmckee 2010-10-04 22:22:22
是的,教授让我在一个项目上工作,我想要做的是反汇编目标文件,但我想这是一个x86可执行文件。如果我使用arm-linux-objdump,我应该可以反汇编到ARM中吗? – Steve 2010-10-11 00:36:26
对于编译以及反汇编,您需要使用ARM交叉编译工具链。 – JagsVG 2015-10-08 05:44:07