0240、Windows 逆向攻防:ETW 事件跟踪
返回:Windows 逆向攻防篇 · 网络安全学习主页
这一节对应 13.6 - 14.3。ETW 是 Windows 里很重要的事件跟踪机制,适合从防护和审计角度观察进程、线程、模块、文件、网络、内核行为等事件。前面的攻防技术如果只看单点,很容易漏掉;ETW 的价值是把行为放进时间线。
1、内容范围
小节
主题
复盘重点
13.6
Event Tracing for Windows
Provider、Session、Event、Consumer 的基本关系
13.7
日志信息记录管理
日志格式、字段规范、时间戳和输出策略
13.8
主线程交互框架及初始化流程
命令输入、会话配置、启动停止和资源状态
13.9
事件跟踪记录初始化
选择 Provider、设置过滤条件和准备回调
14.0
管理事件启动与释放资源
开启会话、停止会话、释放句柄和异常清理
14.1
进程事件监听及回调消息处理
监听进程创建、退出和相关事件
14.2
监听回调派遣及 opcode 过滤
按事件类型、opcode 和关键字段分流
14.3
进程监听及 event 数据提取 ...
0242、Windows 逆向攻防:反调试机制总览
返回:Windows 逆向攻防篇 · 网络安全学习主页
这一节对应 14.8 - 15.3。反调试不是一个单独技巧,而是一组围绕“程序是否处在调试环境中”的检测与干扰思路。学习时要先理解 Windows 调试模型:调试器如何附加进程、内核如何维护调试对象、调试事件如何派发、被调试进程和调试器之间有什么关系。
1、内容范围
小节
主题
复盘重点
14.8
调试器开发与静态动态反调试思路
调试器工作模型、静态检查与动态行为检查
14.9
调试器附加进程执行分析
附加进程后事件、线程和句柄关系的变化
15.0
内核调试对象创建及调试进程句柄
DebugObject、调试端口和内核对象关系
15.1
被调试进程与调试对象关联
被调试进程如何与调试器建立关系
15.2
调试消息封装派遣与调度机制
创建进程、异常、线程、模块加载等调试事件
15.3
应用层反调试思路及检测方向
PEB、API 查询、异常、断点、时间差等方向
2、逐节复盘14.8 调试器开发与静态动态反调试思路调试器的基本工作是接收目标进程产生的调试事件,并让用户观察或控制执行过程。反调试则试图 ...
0245、Windows 逆向攻防:异常与对象查询反调试
返回:Windows 逆向攻防篇 · 网络安全学习主页
这一节对应 16.4 - 16.9。这一组内容把反调试从“看标志位、看断点”推进到“观察异常处理差异和系统对象查询”。异常类反调试的关键是:同一个异常,在有无调试器、不同调试器、不同异常处理链下,可能表现不同。
1、内容范围
小节
主题
复盘重点
16.4
异常反调试检测 1:Filter
异常过滤表达式、处理路径和返回值差异
16.5
异常反调试检测 2:Interrupt
中断类异常、调试器接管和事件表现
16.6
异常反调试检测 3:Interrupt
类似异常在不同上下文下的分发差异
16.7
异常反调试检测 4:Trap
Trap Flag、单步异常和调试器行为
16.8
异常反调试检测 5:Guard
Guard Page、访问异常和页保护状态
16.9
对象查询反调试检测
调试对象、调试端口和系统对象查询
2、逐节复盘16.4 异常过滤表达式异常过滤表达式决定异常是否被当前处理器接收。样本可能通过故意触发异常,再观察过滤器、调试器和系统分发路径来判断环境。
项目
说明
...
0244、Windows 逆向攻防:断点类反调试
返回:Windows 逆向攻防篇 · 网络安全学习主页
这一节对应 16.0 - 16.3。断点是调试器的核心能力,反调试自然也会围绕断点做检测。学习重点是区分软件断点、硬件断点、内存断点的痕迹分别在哪里,以及样本如何通过异常或状态差异感知它们。
1、内容范围
小节
主题
复盘重点
16.0
硬件断点反调试检测
调试寄存器、线程上下文和异常事件
16.1
软件断点反调试检测
INT 3 字节、代码完整性和断点恢复
16.2
内存断点反调试检测
页保护、访问异常和内存监控
16.3
动态监测与反调试
运行时状态变化、时间窗口和事件关联
2、逐节复盘16.0 硬件断点反调试检测硬件断点依赖 CPU 调试寄存器。它不一定修改目标代码字节,但会改变线程上下文。复盘时要关注当前线程和相关线程的调试寄存器状态。
项目
说明
DR0-DR3
记录断点地址
DR6
记录断点命中状态
DR7
控制断点启用和类型
线程上下文
断点通常与具体线程有关
16.1 软件断点反调试检测软件断点常通过替换目标地址处的指令字节来触发异常。典型表现是代码区域出现 ...
0224、Windows 逆向攻防:远程线程注入
返回:Windows 逆向攻防篇 · 网络安全学习主页
这一节对应 02.0 - 02.3,主题是远程线程注入。这里不整理可直接执行的注入步骤,只把它放在 Windows 正常机制下理解:进程可以拥有自己的地址空间,线程负责执行代码,跨进程操作一旦出现,就会带来权限、句柄、内存和线程入口等可观察痕迹。
1、内容范围
小节
主题
02.0
远程线程注入思路
02.1
通用代码框架封装
02.2
远程线程注入实现
02.3
跨进程调试及执行数据分析
1.1、逐节复盘
小节
主要内容
复盘点
02.0
从进程地址空间、远程内存和线程入口理解远程线程类技术
画清楚“打开目标进程 → 准备远程数据 → 触发线程执行 → 观察结果”的行为链,但不记录可照抄执行的步骤
02.1
把实验程序拆成输入校验、进程枚举、日志记录、错误处理等通用模块
重点检查 PID、架构、权限、路径和错误码是否都能被记录
02.2
在授权样本中观察跨进程内存、线程和模块状态变化
关注目标进程新增内存区、线程入口、页属性和模块来源
02.3
使用调试器和日志把执行过程串成时 ...
0225、Windows 逆向攻防:劫持线程与 APC
返回:Windows 逆向攻防篇 · 网络安全学习主页
这一节对应 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 是否真正执行,需要结 ...
0226、Windows 逆向攻防:早鸟注入与全局注册
返回:Windows 逆向攻防篇 · 网络安全学习主页
这一节对应 03.0 - 03.4。它的关键词是“更早的执行时机”和“系统级配置触发”。相比单次线程实验,这类机制更容易牵涉持久化、全局影响和系统配置风险,所以笔记只保留合法实验与检测视角。
1、内容范围
小节
主题
03.0
进程挂起执行及对应安全检测
03.1
早鸟执行实现原理与流程
03.2
AppInit_DLLs
03.3
注册表操作与 REG 文件定义
03.4
键值写入与命令行验证方法
1.1、逐节复盘
小节
主要内容
复盘点
03.0
理解进程挂起启动和早期执行窗口
观察进程创建参数、挂起状态、主线程恢复时机和父子关系
03.1
复盘早鸟执行的整体流程与检测点
重点看进程还没正常运行前是否出现异常内存、线程或 APC 行为
03.2
认识 AppInit_DLLs 这类全局加载机制
从历史机制和兼容性角度理解,不作为推荐实践
03.3
了解注册表配置如何影响全局加载行为
记录键路径、值类型、权限和是否会造成系统级影响
03.4
用命令行和日志验证配置是否生 ...
0229、Windows 逆向攻防:系统调用与权限边界
返回:Windows 逆向攻防篇 · 网络安全学习主页
这一节对应 04.5 - 05.1。主题从“用户态 API 怎么被调用”延伸到“权限、会话、令牌和系统调用边界”。这部分适合从防护视角理解 API、ntdll、内核接口和访问控制之间的关系。
1、内容范围
小节
主题
04.5
API 执行调用路线及高级调用
04.6
过滤系统调用通用思路
04.7
ntdll 跳板过滤与应用层调用链
04.8
用户 APC 强制唤醒触发调度思路
04.9
Session 会话隔离
05.0
进程访问令牌与权限提升
05.1
高级远程线程注入
1.1、逐节复盘
小节
主要内容
复盘点
04.5
梳理应用层 API、ntdll、系统调用和内核处理的调用路线
建立调用链概念,方便之后看 Hook 和检测绕行痕迹
04.6
理解过滤系统调用的常见观察位置
关注用户态 API、ntdll 入口、调用栈和返回值差异
04.7
认识 ntdll 跳板与系统调用入口的关系
防护侧重点是异常调用路径、模块完整性和内存页属性
04.8
理解用户 APC ...
0232、Windows 逆向攻防:进程伪装与隐藏
返回:Windows 逆向攻防篇 · 网络安全学习主页
这一节对应 07.3 - 08.5,主题是进程伪装与隐藏。这里把重点放在“进程看起来是什么”和“进程实际运行的映像是什么”之间的差异,以及防守侧如何从文件对象、节对象、PEB 和内存映像中发现不一致。
1、内容范围
小节
主题
07.3
Process Hollowing
07.4
NT 函数导出调用与文件属性封装
07.5
函数执行流程与数据写回分析
07.6
映像替换思路
07.7
文件对象属性回溯与工具观察
07.8 - 08.5
文件对象、节对象、PEB 信息、数据保护和代码优化
1.1、逐节复盘
小节
主要内容
复盘点
07.3
认识 Process Hollowing 这类进程映像不一致问题
从检测视角对比进程路径、内存映像、节对象和启动链
07.4
通过 NT 函数和文件属性理解底层对象信息
记录文件对象、句柄、属性和错误码
07.5
观察函数执行流程与数据写回关系
重点看输入、输出、结构字段和返回状态
07.6
理解映像替换为什么会造成多处不一致
对比磁盘 ...
0231、Windows 逆向攻防:ShellCode 提取与执行框架
返回:Windows 逆向攻防篇 · 网络安全学习主页
这一节对应 06.0 - 07.2,主题从 ShellCode 的原理延伸到“如何从编译结果中识别、提取、转储和复盘一段二进制代码”。这里仍然只做结构与检测层面的笔记,不提供可复用执行流程。
1、内容范围
小节
主题
06.0
封装后的提取思路与编译器生成顺序
06.1
编译器与语法强制平坦化
06.2
生成、提取和注入框架
06.3
哈希生成框架
06.4
硬编码数据转储与数组转换
06.5
编译器优化策略对代码布局影响
06.6
二进制数据提取与语言数组
06.7 - 07.2
本地/远程执行环境与项目复盘
1.1、逐节复盘
小节
主要内容
复盘点
06.0
从编译器生成顺序理解封装后函数如何落到二进制中
关注函数边界、内联、常量区和跳转关系
06.1
理解语法平坦化对控制流和二进制布局的影响
记录可读性下降、分支变多和静态特征变化
06.2
把生成、提取、校验、记录拆成框架步骤
只做授权样本的转储复盘,不整理可直接部署的执行流程
06.3
认识哈希 ...





