温馨提示×

怎样快速学linux反汇编

小樊
52
2026-09-27 15:20:18
栏目: 智能运维

下面给你一套**“快速上手 Linux 反汇编”**的实用路线,偏实战、不绕理论,按阶段走最容易出成果。


一、先明确你要“反汇编”什么

Linux 下常见反汇编对象:

  • ELF 可执行文件 / 动态库
  • Shellcode
  • 内核模块(高级)
  • CrackMe / CTF 二进制

目标不同,工具链略有区别,但核心一致:看汇编 + 懂调用约定 + 会调试


二、环境准备(半小时搞定)

1. 系统

  • Ubuntu / Debian(WSL 也行)
sudo apt update
sudo apt install -y gcc gdb binutils radare2 objdump nasm

2. 必备工具

工具 用途
objdump 快速反汇编
gdb 动态调试
radare2 / rz 专业逆向
IDA Free 静态分析(Windows/Linux)
strace / ltrace 系统调用 / 库函数

三、最快学习路径(7 天版)

Day 1:看懂反汇编长啥样

写个 C 程序:

int add(int a, int b){
    return a + b;
}

编译:

gcc -O0 -no-pie -fno-stack-protector test.c -o test

反汇编:

objdump -d -M intel test

重点看懂:

  • push rbp
  • mov rbp, rsp
  • 参数传递(rdi, rsi, rdx...)
  • ret

Day 2:搞懂 x86-64 调用约定

必须记住:

  • 参数:RDI, RSI, RDX, RCX, R8, R9
  • 返回值:RAX
  • 栈向下增长
  • 函数开头:push rbp; mov rbp, rsp

推荐资料:

  • 《x86-64 调用约定》一页纸图
  • CSAPP 第三章(非常值)

Day 3:用 GDB 动态反汇编

gdb ./test
disassemble add
break add
run
stepi
info registers

学会:

  • disas
  • ni / si
  • x/10i $pc
  • info registers

Day 4:入门 radare2(效率翻倍)

rz -d ./test
aaa
s main
pdf

常用:

  • aaa 分析
  • pdf 函数反汇编
  • s sym.main 跳转
  • pdf @ sym.add

Day 5:读真实程序

挑简单目标:

  • /bin/ls
  • CTF 的 easy binary
  • CrackMe

训练:

  • 找 main
  • 找 strcmp / printf
  • 跟数据流

Day 6:补汇编基础(只补用到的)

优先级:

  1. mov, add, sub, cmp, test
  2. jmp, je, jne, call, ret
  3. 栈操作 push/pop
  4. 位运算

不用背,边看边查。


Day 7:做小项目

例如:

  • 去掉一个程序的 sleep
  • 修改判断逻辑(patch)
  • 写出函数等价 C 代码

四、核心心法(很重要)

反汇编不是“学汇编”,而是“跟踪程序行为”

你真正在练的是:

  • 控制流
  • 数据结构
  • 系统调用
  • 逻辑推理

五、推荐资料(少而精)

  • 《逆向工程核心原理》
  • CSAPP Ch3
  • LiveOverflow(YouTube)
  • CTF wiki
  • radare2 book

如果你愿意,我可以:

  • 给你一份 3 天速通计划
  • 直接带你反一个真实 ELF
  • 或按 CTF / 安全 / 内核方向定制

你现在是想偏 安全 / CTF / 底层开发 哪块?

0 踩