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 调试器开发与静态动态反调试思路调试器的基本工作是接收目标进程产生的调试事件,并让用户观察或控制执行过程。反调试 ...
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 是否真正执 ...
0227、Windows 逆向攻防:全局 Hook 与内存映射
返回:Windows 逆向攻防篇 · 网络安全学习主页
这一节对应 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 回调触发、执行和卸载全过程
重点记录安装前后模块、句 ...
0228、Windows 逆向攻防:内存映射与 ShellCode 承载
返回:Windows 逆向攻防篇 · 网络安全学习主页
这一节对应 04.0 - 04.4,主题很敏感:ShellCode 和内存承载。这里不记录生成、部署、执行的可操作步骤,只整理它为什么需要位置无关、为什么依赖内存属性、以及防守侧能从哪些地方观察异常。
1、内容范围
小节
主题
04.0
ShellCode 构建
04.1
ShellCode 压缩
04.2
ShellCode 修正
04.3
ShellCode 通用执行方式思路
04.4
无申请附加执行方案的原理边界
1.1、逐节复盘
小节
主要内容
复盘点
04.0
从代码、数据、地址引用和入口点理解 ShellCode 结构
只记录结构和限制,不整理可复用载荷
04.1
理解压缩或裁剪二进制片段时可能破坏的内容
关注相对地址、字符串、导入解析和跳转边界
04.2
修正二进制片段中的地址、长度和边界问题
用反汇编和校验值确认数据没有错位
04.3
从实验框架角度认识本地执行、回调执行等触发方式
重点记录内存属性、调用栈和异常,不写执行手册
04.4
理解“不 ...
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
理解用 ...
0230、Windows 逆向攻防:x64 ShellCode 基础
返回:Windows 逆向攻防篇 · 网络安全学习主页
这一节对应 05.2 - 05.9,主题是 x64 ShellCode 的基础能力。这里不整理可执行实现,而是把它拆成几个可复盘概念:调用约定、模块定位、PE 结构、字符串匹配、哈希匹配和动态 API 解析。
1、内容范围
小节
主题
05.2
x64 ShellCode 通用 C 语言思路
05.3
x64 汇编定位模块特征及数据比对
05.4
x64 汇编解析 PE 结构及数据关联
05.5
x64 汇编字符串匹配通用模板
05.6
x64 汇编框架远程执行测试
05.7
通用 ShellCode 框架
05.8
双版本兼容与特征混淆
05.9
字符串哈希处理及快速匹配
1.1、逐节复盘
小节
主要内容
复盘点
05.2
认识 x64 ShellCode 的限制:调用约定、栈对齐、寄存器保存
重点理解结构,不写可直接执行的字节序列
05.3
通过汇编定位模块基址和关键结构
复盘 PEB、模块链、地址范围和架构差异
05.4
从 PE 结构理解导出表、名称 ...
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
认识哈希 ...
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
使用调试器和日志把执行 ...
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
理解映像替换为什么会造成多处不一致 ...
