在 CentOS 上进行反汇编时遇到错误,通常不是“系统问题”,而是工具、文件格式或环境配置的问题。下面按常见原因 → 解决办法给你一个排查清单。
常见工具:
objdump(binutils)gdbndisasm(nasm)radare2IDA(Linux 版)不同工具报错方式不同。
objdump 报错:File format not recognizedobjdump -d test
原因
解决
file test
head -n 1 test
objdump -b elf32-i386 -d test
objdump -d test
bash: objdump: command not found
解决
sudo yum install -y binutils
现象
objdump 提示架构不匹配解决
sudo yum install glibc-devel.i686
objdump -M intel -d test
objdump -d a.out
结果
mainplt / got原因
解决
gcc -g -no-pie -fno-stack-protector test.c
disassemble main
No symbol table is loaded
解决
gcc -g test.c -o test
gdb ./test
或:
disassemble 0x400000
ndisasm test
❌ 错误用法
解决
objcopy -O binary test test.bin
ndisasm -b 64 test.bin
sudo yum groupinstall "Development Tools"
sudo yum install glibc.i686 libgcc.i686
sudo dnf install binutils gdb nasm
objdump -M intel -d ./program
objdump -M intel -S ./program
set disassembly-flavor intel
disassemble main
你可以直接把完整报错信息贴出来,例如:
file 文件名 的结果我可以一步一步帮你修 ✅