这是一个起点,不是教学大纲。已经会的直接跳过。
1. 先和机器混熟
读不懂就谈不上逆向。x86-64 汇编要练到能顺着一个函数读下来、不用频繁查手册,并且真正理解栈、调用约定和堆是怎么回事。C 在这里帮助极大 —— 知道编译器会生成什么,这本身就是大半个技能。
2. 挑一个反汇编器,把它学透
Ghidra 免费且能打,IDA 是业界标准,Binary Ninja 介于两者之间、API 很好用。选哪个都行 —— 关键是把一个学深,而不是三个都学个皮毛。
3. 学会调试
静态分析告诉你代码可能做什么,调试器告诉你它实际做了什么。Windows 上用 x64dbg,Linux 和 macOS 上用 GDB/LLDB。
4. 刻意地去逆一些东西
CTF 的逆向题是反馈最快的训练方式 —— 规模小、可解、教你具体的套路。Crackme 是经典练习。之后再上真实软件。
5. 选一个方向深入
恶意代码分析、漏洞挖掘、固件、移动、游戏保护。它们共享基础,但很快就会分岔。选那个让你凌晨两点还在看资料的方向。
去哪问
基础卡住了?入门提问。CTF 题卡住了?题目求助。这里没有太基础的问题。
English version: /t/51