在 CentOS 上执行反汇编指令报错,通常不是命令本身不存在,而是工具没装、用法不对、或文件类型不支持。下面按常见原因给你排查清单。
objdump 报错(最常见)objdump -d test
常见错误:
objdump: command not foundobjdump: test: File format not recognized✅ 原因 & 解决:
① 没装 binutils
yum install -y binutils
② 不是可执行文件
file test
.o③ 架构不匹配 ARM 程序在 x86 CentOS 上:
objdump -d test
# 可能只显示 header
需要交叉工具链。
gdb disassemble 报错gdb ./test
(gdb) disassemble main
常见错误:
No symbol table infoCannot access memory✅ 解决:
gcc -g test.c -o test
或:
(gdb) disassemble 0x400000
ndisasm 报错ndisasm test
常见错误:
command not found✅ 安装:
yum install -y nasm
⚠️ 注意:
ndisasm 只接受纯二进制正确用法:
objcopy -O binary test test.bin
ndisasm test.bin
readelf 被误当反汇编readelf -d test
❌ 这不是反汇编
objdump -d -M intel test
objdump -t test
readelf -h test
which objdump
file yourfile
objdump -d yourfile
你可以直接贴:
file 文件名 的结果我可以精准告诉你哪里错了。