这一节对应 03.5 - 03.9,核心是 Windows 消息机制和共享内存映射。Hook 和内存映射都是系统正常能力,安全复盘时要关注它们在跨进程场景下带来的加载、消息、回调和共享数据痕迹。
1、内容范围
| 小节 |
主题 |
| 03.5 |
Windows Hook 挂钩监听消息 |
| 03.6 |
跨进程钩子注入消息映射回调原理 |
| 03.7 |
主线程、窗口句柄与消息队列 |
| 03.8 |
注入触发回调及释放全过程 |
| 03.9 |
共享内存映射完成跨进程注入思路 |
1.1、逐节复盘
| 小节 |
主要内容 |
复盘点 |
| 03.5 |
从消息机制理解 Windows Hook 的作用位置 |
记录 Hook 类型、线程/全局范围、目标窗口和消息来源 |
| 03.6 |
理解跨进程消息回调为什么可能导致模块进入其他进程 |
观察模块加载、回调线程、窗口消息和释放过程 |
| 03.7 |
获取主线程和窗口句柄用于建立观察对象 |
复盘窗口句柄、线程 ID、进程 ID 之间的映射关系 |
| 03.8 |
观察 Hook 回调触发、执行和卸载全过程 |
重点记录安装前后模块、句柄、线程和异常变化 |
| 03.9 |
从共享内存映射理解跨进程数据交换 |
关注映射对象名称、权限、读写边界和资源释放 |
2、机制理解
| 机制 |
复盘重点 |
| 消息队列 |
GUI 程序依赖消息循环,窗口线程和消息回调是观察重点 |
| 全局 Hook |
影响范围可能超出单个进程,必须关注 DLL 路径、加载范围和卸载 |
| 共享内存 |
多进程共享同一段映射区域,关键是权限、映射名和访问模式 |
| 释放流程 |
Hook、映射和句柄必须有清理记录,否则很容易残留状态 |
3、检测观察
| 观察点 |
说明 |
| 窗口与线程 |
目标窗口句柄、所属线程、消息队列活动是否异常 |
| 模块加载 |
是否加载了与业务无关的 DLL,路径是否可信 |
| 映射对象 |
命名映射对象、权限和访问进程需要关联分析 |
| 回调地址 |
回调地址是否属于可信模块或异常内存区域 |
| 生命周期 |
安装、触发、释放的时间线是否完整 |
4、复盘建议
| 项目 |
内容 |
| 实验对象 |
优先使用自写窗口程序 |
| 观察工具 |
进程工具、模块查看、窗口枚举、日志记录 |
| 记录方式 |
记录窗口句柄、线程 ID、模块路径、映射名和释放动作 |
| 安全边界 |
不对真实应用、聊天工具、浏览器等非授权目标做实验 |
5、学习检查清单
| 检查项 |
状态 |
| 能解释消息队列、窗口线程和回调之间的关系 |
待复盘 |
| 能说清全局 Hook 为什么容易造成广泛影响 |
待复盘 |
| 能列出共享内存映射的权限和对象名观察点 |
待复盘 |
| 能设计 Hook/映射实验的清理和恢复记录 |
待复盘 |
Hook 与共享内存只在授权实验程序中复盘,重点放在系统机制、日志和检测点。