0202、Windows 零基础逆向教程(二):提升篇
返回:Windows 逆向总目录 · 网络安全学习主页
提升篇开始进入 PE 文件结构和 Windows 程序加载机制。入门篇更多是在补“怎么看汇编、怎么看寄存器、怎么看栈”;提升篇则要继续往文件格式、加载器、导入导出、异常、符号、TLS 和项目工具方向走。
这部分按小块整理,不把所有视频标题平铺在一页里。每篇笔记围绕一个能复盘的主题展开:先讲概念,再讲结构,再讲调试或代码验证。
1、学习定位
| 线索 | 目标 |
|---|---|
| PE 结构 | 能看懂 DOS 头、NT 头、可选头、节表、数据目录和文件/内存映像差异 |
| 加载机制 | 能理解程序从文件到进程内存的大致过程,包括导入、重定位、节区保护和入口点 |
| 数据目录 | 能逐步复盘导出表、导入表、资源表、异常表、证书、调试信息和 TLS |
| 工具能力 | 能写小型解析工具,用结构体和偏移验证 PE 字段 |
| 项目实践 | 能把解析能力迁移到 PE 修改器、调试器、扫描器等工具项目 |
逆向笔记只用于合法样本分析、课程复盘和防护理解。涉及模块加载、内存修改、ShellCode、注入等内容时,只整理原理、结构和安全边界,不整理未授权攻击流程。
2、章节目录
| 编号 | 内容范围 | 主要内容 | 笔记 |
|---|---|---|---|
| 0216 | 01 PE 前置与头结构 | 提升篇路线、PE 工具、文件状态与内存状态、DOS 头、NT 头、文件头、节表入口 | 0216 |
| 0217 | 02 PE 解析框架与节区 | 控制台解析框架、用户指令、二进制写入、DOS/NT 定位、节区定位、OptionalHeader、节区对齐与 RVA/FOA | 0217 |
| 0218 | 03 导出表、导入表与重定位 | DLL 导出、导出三表、GetProcAddress、IAT/INT、导入修复、重定位块和重定位项遍历 | 0218 |
| 0219 | 04 无模块加载与模块隐藏原理 | 文件缓存与内存映像转换、导入与重定位修复、模块自加载、反射式加载原理和风险边界 | 0219 |
| 0220 | 05 资源、图标、异常与证书 | 资源目录、图标资源提取、SEH/UNWIND、Runtime Function、安全证书和数据目录差异 | 0220 |
| 0221 | 06 PDB、TLS 与加载风险评估 | PDB/DIA SDK、符号解析、TLS 静态与动态机制、加载风险记录和检测报告 | 0221 |
| 0222 | 07 PE 修改器与 CE 扫描器项目 | 新增节、扩大节区、移动导入导出表、入口点修改、内存扫描、二次扫描和结果修改 | 0222 |
3、整理重点
| 方向 | 复盘重点 |
|---|---|
| 地址体系 | VA、RVA、FOA、ImageBase、SectionAlignment、FileAlignment |
| 头部结构 | IMAGE_DOS_HEADER、IMAGE_NT_HEADERS、IMAGE_FILE_HEADER、IMAGE_OPTIONAL_HEADER |
| 节区结构 | 节名、虚拟大小、虚拟地址、文件偏移、文件大小、节属性 |
| 数据目录 | 导入、导出、资源、异常、证书、重定位、调试、TLS |
| 调试观察 | 文件中看到的偏移,加载到内存后看到的地址,以及工具展示之间的对应关系 |
| 代码验证 | 所有字段解析都尽量用边界检查,避免把损坏文件当成正常 PE |
4、后续写法
每一篇小结尽量按这个顺序整理:
- 这一块解决什么问题。
- 涉及哪些结构体和关键字段。
- 文件偏移、内存地址和工具展示怎么对应。
- 最小代码或伪代码如何验证。
- 有哪些常见误区和安全边界。
这一篇后续会是 Windows 逆向里最容易反复回看的部分。PE 结构一旦理顺,后面看导入导出、重定位、资源、异常和 TLS,就不会像在雾里摸字段。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Ruiqy~!






