在 CentOS 下做“反汇编”通常依赖 GNU 工具链(如 objdump、gdb、gcc 自带内联汇编查看等)。下面按常见使用场景给你说明。
objdump 反汇编(最常用)objdump -d test
或
objdump -d test.o
常用选项:
-d:反汇编可执行代码-D:反汇编所有段(包括数据段)-M intel:使用 Intel 语法(默认是 AT&T)-S:源码 + 汇编混合(需要编译时加 -g)示例(Intel 语法):
objdump -d -M intel test
编译时加调试信息:
gcc -g -o test test.c
然后:
objdump -S -M intel test
objdump -d -M intel test | grep -A 20 main
或使用 nm 找到地址:
nm test | grep main
objdump -d -M intel --start-address=0x4005b6 --stop-address=0x400600 test
gdb 进行反汇编(调试时非常方便)gdb ./test
disassemble
disassemble main
set disassembly-flavor intel
disassemble main
disassemble 0x4005b6, 0x400600
gcc -S -masm=intel test.c
生成:
test.s
gcc -O2 -S -masm=intel test.c
ndisasm(适合裸二进制)yum install nasm
ndisasm -b 64 test.bin
radare2(高级逆向)yum install radare2
r2 ./test
pdf
默认(AT&T):
movl %eax, %ebx
Intel:
mov ebx, eax
✅ 建议初学者用:
-M intel
❌ objdump: not found
yum install binutils
❌ gdb: command not found
yum install gdb
如果你愿意,可以告诉我:
我可以给你更精确的命令示例。