0243、Windows 逆向攻防:调试标志位反调试
返回:Windows 逆向攻防篇 · 网络安全学习主页
这一节对应 15.4 - 15.9。调试标志位反调试是最常见、也最适合作为入门复盘的一类:它不一定复杂,但能帮自己建立“系统结构字段、API 查询、运行状态差异”之间的联系。
1、内容范围
小节
主题
复盘重点
15.4
调试标志位反调试检测 1
PEB BeingDebugged 这类直接标志
15.5
调试标志位反调试检测 2
DebugPort / DebugObject 等查询类信息
15.6
调试标志位反调试检测 3
进程信息查询与返回值差异
15.7
调试标志位反调试检测 4
系统调试状态、内核调试相关信息
15.8
调试标志位反调试检测 5
NtGlobalFlag、堆调试标志等结构字段
15.9
调试标志位反调试检测 6
Heap Flag、校验位和综合判断
2、逐节复盘15.4 PEB BeingDebugged 类标志PEB 是每个用户态进程都能访问的重要结构,里面保存了进程环境相关信息。BeingDebugged 是常见调试标志,很多样本会直接读取这个字段来判断 ...
0238、Windows 逆向攻防:反汇编引擎
返回:Windows 逆向攻防篇 · 网络安全学习主页
这一节对应 12.5 - 13.1。反汇编引擎不是为了“炫技”,而是为了把一段原始机器码还原成可观察、可校验、可讨论的指令序列。前面 Hook 章节经常提到指令长度、边界对齐、RIP 相对寻址和中转跳转,这一组内容就是在补这个基础。
1、内容范围
小节
主题
复盘重点
12.5
Capstone
认识反汇编引擎的输入、输出和架构模式选择
12.6
用户数据交互及输入结构解析
把用户输入整理成明确的字节流、地址、架构和输出格式
12.7
数据转换及安全性检查
十六进制字符串、字节数组、长度、边界和非法字符校验
12.8
反汇编数据解析及格式输出
输出地址、机器码、助记符、操作数和错误信息
12.9
硬编码反汇编转换
对固定字节序列做结构化拆解,观察指令边界
13.0
反汇编引擎双版本兼容
兼容不同架构、不同库版本和不同输出字段
13.1
XEDParse
了解另一类解析方案,比较语法、准确性和适用场景
2、逐节复盘12.5 CapstoneCapstone 可以把二进制字节流解析成指令。复盘 ...
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 软件断点反调试检测软件断点常通过替换目标地址处的指令字节来触发异常。典型表现是代码区域出现 ...
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 异常过滤表达式异常过滤表达式决定异常是否被当前处理器接收。样本可能通过故意触发异常,再观察过滤器、调试器和系统分发路径来判断环境。
项目
说明
...
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
用命令行和日志验证配置是否生 ...
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
理解“不额外申请内 ...
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 回调触发、执行和卸载全过程
重点记录安装前后模块、句 ...
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 结构理解导出表、名称表和函数地 ...





