下面分成四块:
-
核心原理(什么是逆向、静态/动态、协议分析等)
-
安全合规与实验室原则(如何合法练习)
-
实战学习路线(逐步能力表、12 周学习计划)
-
资源与练习平台(书籍、课程、工具与练习场所)

1) 核心原理 — 把“黑盒”变成“白盒”的思维
逆向工程(Reverse Engineering) 的目标是从可观测的产物(可执行文件、网络流量、固件、移动应用、协议抓包)中恢复设计、理解行为、发现缺陷。常见用途:兼容性研究、漏洞发现、恶意软件分析、协议实现互操作、合法的安全测试。
常见方法论(高层):
-
静态分析(Static Analysis)
只看“文件本身”(无运行):反汇编、反编译、读取二进制格式(ELF/PE/Mach-O)、识别字符串、符号、数据结构、节段布局。静态分析能揭示程序的控制流、数据结构和常量,但对动态行为(加密、运行时自解密、网络交互)有限制。 -
动态分析(Dynamic Analysis)
运行程序并观察行为:跟踪系统调用、堆栈、内存、寄存器;注入或拦截函数调用(API hook);监测网络请求与外部交互。动态分析能看到真实执行路径、运行时数据与交互,但需要安全隔离环境。 -
协议 / 网络分析
抓包(被动)或在受控环境下构造请求(主动)以理解协议状态机、序列化格式、握手/认证流程、频率/时序特征。关键是把海量数据抽象成“状态机 + 帧/消息格式 + 语义”。 -
符号/语义恢复
从反汇编得到函数边界与控制流图(CFG),结合数据流分析(data-flow)和名词映射(strings/format patterns)来推测变量含义与协议字段含义。 -
差分/变异分析(Differential)
对比两个版本或两次运行(有/无某输入、认证成功/失败)来定位变化点。差分是定位控制路径、功能触发条件的高效方法。 -
自动化与辅助
自动化脚本用于大量样本(如恶意软件族群)分析;符号执行、模糊测试(fuzzing)用于触发边界行为并收集崩溃数据(用于安全加固)。
安全/防御导向的结

最低0.47元/天 解锁文章
752

被折叠的 条评论
为什么被折叠?



