这一节对应 02.4 - 02.9,把重点放在线程上下文和异步执行模型上。远程线程是“新建执行流”,劫持线程与 APC 更强调“影响已有线程何时执行、执行到哪里、执行什么回调”。

1、内容范围

小节 主题
02.4 劫持线程注入思路
02.5 线程上下文环境修改与执行载体搭建
02.6 劫持线程注入执行流程
02.7 APC 调用触发机制
02.8 用户层 APC 队列
02.9 基于线程的简易注入汇总

1.1、逐节复盘

小节 主要内容 复盘点
02.4 理解劫持线程的核心:暂停线程、读取上下文、改变执行流、恢复运行 复盘时只记录线程上下文变化和风险,不写可直接劫持的操作流程
02.5 观察线程上下文中寄存器、栈和执行地址的含义 重点检查架构、调用约定、栈对齐和恢复后的稳定性
02.6 梳理劫持线程执行链路与失败原因 关注线程状态、恢复时机、异常退出和目标程序是否被破坏
02.7 认识 APC 的触发条件和线程 Alertable 状态 复盘 APC 是否真正执行,需要结合线程等待状态和事件日志
02.8 从用户层 APC 队列理解异步执行模型 观察 APC 排队、目标线程、触发时机和异常行为
02.9 汇总线程类注入的共同痕迹 对比远程线程、劫持线程、APC 的句柄、线程、内存和时间线差异

2、机制复盘

机制 复盘重点
线程上下文 线程的寄存器、栈、指令指针决定它下一步执行位置
挂起与恢复 挂起线程便于观察上下文,但也会造成明显行为痕迹
APC 队列 APC 是 Windows 正常异步调用机制,触发时机与线程状态有关
执行时机 同样是写入内容,触发执行的时机和线程状态会改变检测结果

3、调试观察

观察点 建议记录
线程列表 哪些线程被挂起、恢复、排队或状态异常
上下文变化 指令指针、栈指针、关键寄存器是否出现突变
APC 行为 是否存在异常排队、异常回调地址或与业务无关的异步执行
异常与崩溃 上下文错误常导致访问异常,日志要保留错误地址和线程 ID

4、防护思路

方向 内容
行为关联 线程状态变化要和进程句柄、内存属性、模块加载一起看
线程入口 入口或回调地址是否落在非模块区域、私有可执行页或异常节区
权限控制 限制不必要的跨进程线程操作权限
日志复盘 按时间线记录:目标选择、线程选择、状态变化、异常触发

5、学习检查清单

检查项 状态
能区分远程线程、劫持线程和 APC 的执行触发差异 待复盘
能说明线程上下文里哪些字段最影响执行流 待复盘
能从日志中关联线程挂起、恢复、回调和异常 待复盘
能描述防守侧如何观察异常线程行为 待复盘

本节只记录线程与 APC 机制、观察点和检测复盘,不记录可直接用于未授权执行的代码流程。