我有一个 elf arm aarch64 二进制文件,我想使用 objdump 反汇编它的 .text 部分。我的机器是 amd64。
我尝试将 objdump 用于 ARM 架构:反汇编为 ARM,但 objdump 无法识别二进制文件,因此无法对其进行反汇编。
我有一个 elf arm aarch64 二进制文件,我想使用 objdump 反汇编它的 .text 部分。我的机器是 amd64。
我尝试将 objdump 用于 ARM 架构:反汇编为 ARM,但 objdump 无法识别二进制文件,因此无法对其进行反汇编。
转到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
使用与编译二进制文件相同的工具链
在ARM 架构的情况下,它通常类似于arm-linux-gnueabi-gcc,所以对于objdump你应该使用
arm-linux-gnueabi-objdump
目前我猜你必须使用 x86 工具链(objdump)来反汇编使用 ARM 工具链编译的二进制文件,因此错误