在 CentOS(本质上是 Linux 系统)上,“反汇编”通常取决于你想反汇编什么文件、用什么工具。下面按常见场景给你梳理一下:
objdump(最常用)适合:ELF 可执行文件、.o 目标文件、库文件
objdump -d 文件名
常用参数:
objdump -d -M intel 文件名 # Intel 语法(默认是 AT&T)
objdump -d -S 文件名 # 反汇编 + 源码对照(需带调试信息)
objdump -D 文件名 # 反汇编所有段(不只代码段)
示例:
objdump -d -M intel ./a.out
gdb(调试时反汇编)适合:正在调试的程序
gdb ./程序
进入 gdb 后:
disassemble # 反汇编当前函数
disassemble main # 反汇编 main 函数
disassemble /m main # 反汇编 + 源码
set disassembly-flavor intel # 用 Intel 语法
readelf(查看结构,不直接反汇编)适合:查看 ELF 信息
readelf -h 文件名
readelf -S 文件名
ndisasm(裸汇编)适合:直接反汇编二进制文件(如 shellcode)
ndisasm -b 32 file.bin
ndisasm -b 64 file.bin
安装:
yum install nasm
radare2 / objdump 替代(进阶)r2 -d 程序
pdf
✅ 看 C 程序反汇编:
gcc -g test.c
objdump -d -M intel -S a.out
✅ 看无源码二进制:
objdump -d -M intel 程序
如果你能告诉我:
我可以给你更精确的命令。