Objdump ARM aarch64代码?

时间:2014-08-20 23:53:46

标签: arm objdump arm64

我有一个精灵臂aarch64二进制文件,我想用objdump反汇编.text部分。我的机器是amd64。

我试过Using objdump for ARM architecture: Disassembling to ARM但objdump没有识别二进制文件,因此无法对其进行反汇编。

2 个答案:

答案 0 :(得分:4)

转到http://releases.linaro.org/latest/components/toolchain/binaries/,然后选择gcc-linaro-aarch64-linux-gnu-4.9-*,例如gcc-linaro-aarch64-linux-gnu-4.9-2014.07_linux.tar.bz2

解包后调用aarch64-linux-gnu-objdump,即:

echo "int main(void) {return 42;}" > test.c
gcc-linaro-aarch64-linux-gnu-4.9-2014.07_linux/bin/aarch64-linux-gnu-gcc -c test.c
gcc-linaro-aarch64-linux-gnu-4.9-2014.07_linux/bin/aarch64-linux-gnu-objdump -d test.o

获得objdump。

test.o:     file format elf64-littleaarch64


Disassembly of section .text:

0000000000000000 <main>:
   0:   52800540    mov w0, #0x2a                   // #42
   4:   d65f03c0    ret

答案 1 :(得分:1)

使用您用于编译二进制文件的相同工具链

对于 ARM架构,它通常类似于 arm-linux-gnueabi-gcc ,因此对于 objdump ,您应该使用< / p>

  

<强>臂-Linux的gnueabi-objdump的

     

目前我猜你必须使用x86工具链(objdump)来反汇编使用ARM工具链编译的二进制文件,因此错误