“Linux 反汇编报错”这个问题太宽泛了,需要先看具体报错信息和你用的什么工具/命令。下面我按常见原因 + 典型场景给你梳理一下,你对照看看是哪一种。
objdump 反汇编报错objdump -d a.out
File format not recognized
No symbols
Disassembly not supported for this architecture
✅ 解决:
file a.out
objdump -d -M intel a.out
gdb 反汇编报错No function contains program counter
Cannot access memory at address
✅ 正确方式:
gdb ./a.out
(gdb) disassemble main
ndisasm 报错(新手常踩)ndisasm a.out
❌ 错误原因:
ndisasm 只认裸机器码,不认 ELF✅ 正确做法:
objcopy -O binary a.out a.bin
ndisasm -b 64 a.bin
在 x86 Linux 上反 ARM:
arm-linux-gnueabi-objdump -d arm_bin
用错工具一定会报错。
你可以按顺序检查:
file your_file
readelf -h your_file
uname -m
然后告诉我:
file 输出)我在 Linux 用
objdump -d test报错
File format not recognized
file test显示:ASCII text
如果你愿意,把报错截图或完整命令行贴出来,我可以直接告诉你是哪一步错了、该怎么改。