使用objdump进行ARM体系结构:反汇编到ARM

我有一个对象文件,并试图反汇编它。 当我使用:

objdump -d example.o 

我以elf64-x86-64的文件格式获得代码集。

我试图把这个反汇编成ARM,我该怎么做呢?

Solutions Collecting From Web of "使用objdump进行ARM体系结构:反汇编到ARM"

如果你想做反汇编的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。

希望这可以帮到你。

用正确的目标编译binutils以获得知道如何反汇编ARM的binutils objdump二进制文件。

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-linux-gnueabi-gcc来交叉编译arm文件。 您正在使用本地objdump。 要反汇编arm目标文件,请使用arm-linux-gnueabi-objdump 。 希望这可以帮助

安装ELDK并使用arm-linux-objdump。 您正试图使用​​只知道x86的程序反汇编ARM指令。