🎨 颜色标记说明

  • 粉色:特别重要、主线必掌握、优先复盘的内容。
  • 蓝色:核心概念、术语、分类名。
  • 橙色:需要关注的边界、易错点、注意事项。
  • 绿色:解释类内容、帮助理解知识点。

这组笔记怎么用

这组内容以第二版 18 章目录为骨架,属于我阅读前使用的结构化底稿。笔记不是原书正文的替代品,也不代表作者原话;阅读时需要结合书中示例、自己的编译结果和调试记录不断修正。

最有效的阅读方法是:先读一节,再亲自编译最小示例,最后关闭源码只看反汇编复述语义。

推荐每章完成四轮:

  1. 看目录和本章问题,建立预期。
  2. 阅读原书,标记与笔记不一致或遗漏之处。
  3. 使用 Debug、Release、x86、x64 四种组合观察差异。
  4. 把自己的截图、地址变化和结论补回笔记。

正版电子书

公开笔记与校对资料

这些资料主要用于交叉核对章节结构、实验思路和旧版反汇编现象,不直接复制原文。多数内容基于第 1 版、VC6 或 32 位环境,阅读时需要结合当前编译器重新验证。

公开笔记中有些结论只适用于特定编译器和架构。例如 this 的传递位置、对象布局、虚表结构和优化结果都不是跨平台固定规则。本组笔记会明确区分 x86 旧环境、Windows x64 ABI 与编译器实现细节。

全书目录

第一部分:准备工作

编号 章节 本章主线
001 熟悉工作环境和相关工具 VS、GCC、OllyDbg、x64dbg、WinDbg、IDA 与反汇编引擎

第二部分:C++ 反汇编揭秘

编号 章节 本章主线
002 基本数据类型的表现形式 整数、浮点数、字符、指针、引用和常量
003 认识启动函数,找到用户入口 PE 入口、CRT 启动代码和 main 定位
004 观察各种表达式的求值过程 算术、逻辑、位运算和优化
005 流程控制语句的识别 if、switch、循环和控制流图
006 函数的工作原理 栈帧、参数、返回值与调用约定
007 变量在内存中的位置和访问方式 全局、局部、静态和堆变量
008 数组和指针的寻址 数组、指针、多维寻址和函数指针
009 结构体和类 对象布局、this、静态成员和对象传参
010 构造函数和析构函数 构造、析构、对象生命周期和隐藏调用
011 虚函数 虚表、虚表指针和动态绑定
012 从内存角度看继承和多重继承 单继承、多继承、抽象类和虚继承
013 异常处理 try/catch、对象异常和 x64 展开信息

第三部分:逆向分析技术应用

编号 章节 本章主线
014 PEiD 的工作原理分析 编译器特征识别与可信度边界
015 OllyDbg 的工作原理分析 软件、内存、硬件断点和调试事件
016 远控木马样本分析方法 隔离环境、行为链和通信协议分析
017 WannaCry 勒索病毒分析方法 勒索模块、蠕虫模块、漏洞背景和防御证据
018 反汇编代码的重建与编译 函数原型、数据结构、控制流和语义验证

总体知识地图

1
2
3
4
5
6
7
8
9
工具与架构

数据类型 → 表达式 → 控制流 → 函数
↓ ↓
变量与内存 → 数组与指针 → 对象模型

构造析构 → 虚函数 → 继承 → 异常

编译器识别、调试器、样本分析、代码重建

全书检查清单

检查项 状态
能独立搭建 x86/x64 编译与调试环境 待复盘
能从机器代码判断常见数据类型和控制结构 待复盘
能恢复函数参数、返回值和调用约定 待复盘
能根据内存布局还原结构体和类 待复盘
能识别虚表、继承和异常处理结构 待复盘
能在隔离环境中完成恶意样本的防御性分析 待复盘
能把局部反汇编整理成可验证的伪代码 待复盘