学习 Linux 下的反汇编命令,核心目标是:
能看懂程序在 CPU 层面的执行过程,并熟练使用工具进行分析。
下面我按学习路径 + 常用命令 + 实战建议给你一个系统性的指南。
在学反汇编命令前,至少要懂:
源码 → 预处理 → 汇编 → 目标文件 → 可执行文件
mov, push, pop, call, retjmp, je, jnelea, add, sub, cmprax / eax(返回值)rsp / rbp(栈)rdi / rsi / rdx(参数)objdump -d test
objdump -d -S test
objdump -d test | grep -A 20 main
objdump -t test
✅ 适合:
gdb ./test
disassemble main
disassemble /m main
stepi
nexti
info registers
✅ 适合:
nm test
常见符号:
T 文本段(函数)U 未定义(外部函数)readelf -h test
readelf -S test
✅ 适合理解:
gcc -S 生成汇编gcc -S test.c
objdump -d -S a.out
重点看:
gdb ./a.out
break main
run
disassemble
gcc -s test.c
❌ 一上来就啃汇编手册
❌ 只看不练
❌ 忽视 gdb
✅ 正确方式:
可以告诉我:
我可以直接给你定制化学习路线和命令清单。