入门 Linux 下反汇编(disassembly) 通常包括:了解基本概念、准备工具、学习指令、动手实践。下面给你一条比较系统的入门路线。
注意:反汇编 ≠ 反编译
反编译是尝试还原成 C/Python 等高级语言
推荐先学 x86-64(AMD64),Linux 默认用这个
必须认识的:
rax, rbx, rcx, rdx, rsi, rdi, rsp, rbp, ripmovpush / popcall / retadd / subcmp / jmp / je / jneobjdump -d test
反汇编可执行文件
objdump -d -M intel test
使用 Intel 语法(更直观)
gdb ./test
常用命令:
disassemble main
break main
run
stepi
info registers
r2 -d ./test
功能:
int add(int a, int b) {
return a + b;
}
编译:
gcc -O0 -g test.c -o test
反汇编:
objdump -d -M intel test
观察:
gdb ./test
disassemble main
stepi
看:
❌ 一上来就分析复杂软件
❌ 只背指令不理解执行流程
❌ 忽略调用约定和栈结构
✅ 从小程序开始
✅ 多画栈图
✅ 配合调试器看执行过程
如果你愿意,我可以:
你主要是想往哪个方向学?