要快速掌握 CentOS 下的反汇编指令,可以按“环境 → 工具 → 常用命令 → 实战练习”的路线来,不需要一开始啃完汇编全书。
# 安装常用工具
sudo yum install -y binutils gcc gdb objdump readelf nasm
gcc:编译 Cobjdump:反汇编gdb:动态调试readelf:查看 ELF 结构nasm:写汇编用(可选)# 反汇编整个可执行文件
objdump -d a.out
# 反汇编并显示源码(需 -g 编译)
gcc -g -o a.out a.c
objdump -S a.out
# 只看 main 函数
objdump -d a.out | grep -A 30 '<main>:'
常用参数:
-d:反汇编-S:源码+汇编-M intel:Intel 语法(默认是 AT&T)objdump -d -M intel a.out
gdb ./a.out
常用指令:
disassemble main # 反汇编函数
disassemble # 反汇编当前位置
x/10i $rip # 查看当前指令
break main
run
stepi # 单步执行一条指令
info registers # 查看寄存器
readelf -h a.out # ELF 头
readelf -S a.out # 段表
readelf -s a.out # 符号表
CentOS 默认 AT&T:
mov %rsp, %rbp
Intel(更直观):
mov rbp, rsp
✅ 建议初学用:
objdump -M intel
int add(int a, int b){
return a+b;
}
push / mov / retgcc -g -o test test.c
objdump -S -M intel test
gdb ./test
告诉我:
我可以直接给你定制 1 周速成路线 + 示例。