这一节对应 10.1 - 10.5,从 Hook 概念进入 IAT Hook。Hook 可以用于调试、监控和兼容,也可能被滥用。这里重点复盘 PE 导入表、函数指针替换和检测一致性。

1、内容范围

小节 主题
10.1 Hook 基本概念及分类
10.2 IAT Hook 构建思路及 PE 关联
10.3 API 调用拦截测试及安装卸载
10.4 IAT Hook 检测手法
10.5 拦截 IAT 修改事件与双向监听

1.1、逐节复盘

小节 主要内容 复盘点
10.1 认识 Hook 的分类和共同目标 重点分清 IAT、Inline、VTable、VEH、断点类 Hook 的痕迹位置
10.2 从 PE 导入表理解 IAT Hook 的作用点 复盘导入描述符、IAT 表项、目标模块和函数地址
10.3 观察 API 拦截测试和安装卸载状态变化 记录原表项、新表项、恢复状态和调用结果
10.4 设计 IAT Hook 检测手法 检查 IAT 地址是否落在合法模块导出范围内
10.5 监听 IAT 修改行为和 API 调用路径 结合内存保护变化、表项变化和调用栈分析

2、核心理解

概念 复盘重点
Hook 本质 改变调用路径,让原本目标转向观察、替换或包装逻辑
IAT 导入地址表保存外部 API 的实际调用地址
安装卸载 状态变更必须可恢复,实验要记录原值和新值
检测 IAT 地址是否指向可信模块和合法范围
双向监听 既观察调用,也观察 IAT 被修改的行为

3、防护观察点

观察点 说明
IAT 地址范围 是否指向预期 DLL 导出地址
模块可信度 替换目标是否来自未知模块或私有内存
表项变化 IAT 表项是否在运行期间被修改
页属性变化 修改 IAT 常伴随内存保护属性调整
调用行为 API 调用路径、返回值和副作用是否异常

4、复盘建议

项目 内容
原始表项 记录原 API 地址和所属模块
修改记录 记录何时修改、修改为哪里、是否恢复
调用验证 观察调用栈和结果是否符合预期
检测结果 比较 PE 文件导入表与内存 IAT

5、学习检查清单

检查项 状态
能解释 IAT 与 PE 导入表的关系 待复盘
能说明 IAT Hook 为什么会留下表项变化 待复盘
能设计 IAT 完整性检查思路 待复盘
能记录 Hook 安装与卸载前后的差异 待复盘

Hook 内容只用于授权调试和检测复盘,不整理对真实软件的未授权拦截流程。