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 ...
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
认识哈希 ...
0234、Windows 逆向攻防:特征码搜索
返回:Windows 逆向攻防篇 · 网络安全学习主页
这一节对应 09.2 - 10.0,主题是特征码搜索。它既可以用于逆向定位,也可以用于防护检测。复盘时不要只看“匹配到了什么”,还要看特征是否稳定、误报是否可控、扫描范围是否合理。
1、内容范围
小节
主题
09.2
硬编码数据基本格式及可变量
09.3
通配符与模糊搜索
09.4
程序框架设计与数据管理
09.5
文件结构扫描解析
09.6
特征码字符串提取转换
09.7
Pattern 匹配数组封装
09.8
扫描模式与回调过滤
09.9
匹配结果写回
10.0
结果解析和效率测试
1.1、逐节复盘
小节
主要内容
复盘点
09.2
认识特征码中固定字节和可变量的区别
记录哪些字节稳定、哪些字段会随版本或地址变化
09.3
使用通配符表达模糊匹配
关注误报率、匹配长度和上下文校验
09.4
设计扫描工具的数据结构和结果管理方式
重点记录输入、范围、规则、命中结果和错误信息
09.5
针对文件结构做扫描解析
分清文件偏移、RVA、VA 和节区范围
09. ...
0235、Windows 逆向攻防:Hook 基础与 IAT Hook
返回:Windows 逆向攻防篇 · 网络安全学习主页
这一节对应 10.1 - 10.5,从 Hook 概念进入 IAT Hook。Hook 可以用于调试、监控和兼容,也可能被滥用。这里重点复盘 PE 导入表、函数指针替换和检测一致性。
1、内容范围
小节
主题
10.1
Hook 基本概念及分类
10.2
IAT Hook 构建思路及 PE 关联
10.3
API 调用拦截测试及安装卸载
10.4
IAT Hook 检测手法
10.5
拦截 IAT 修改事件与双向监听
1.1、逐节复盘
小节
主要内容
复盘点
10.1
认识 Hook 的分类和共同目标
重点分清 IAT、Inline、VTable、VEH、断点类 Hook 的痕迹位置
10.2
从 PE 导入表理解 IAT Hook 的作用点
复盘导入描述符、IAT 表项、目标模块和函数地址
10.3
观察 API 拦截测试和安装卸载状态变化
记录原表项、新表项、恢复状态和调用结果
10.4
设计 IAT Hook 检测手法
检查 IAT 地址是否落在合法模块导出范围内
...
0233、Windows 逆向攻防:反射式 DLL 加载
返回:Windows 逆向攻防篇 · 网络安全学习主页
这一节对应 08.6 - 09.1。反射式加载的核心不是“神秘技巧”,而是在正常加载器之外,部分模拟 PE 映射、导入修复、重定位修复和入口执行过程。复盘时必须回到 PE 结构本身。
1、内容范围
小节
主题
08.6
ReflectiveDLL
08.7
注入主框架与导出函数执行
08.8
定位执行地址并回溯模块头
08.9
哈希计算、匹配和导出表数据对接
09.0
映像动态拉伸、拷贝和导入表修复
09.1
重定位修正和入口点执行
1.1、逐节复盘
小节
主要内容
复盘点
08.6
理解 ReflectiveDLL 的核心:模块自己完成加载准备
只记录 PE 加载关系、修复对象和检测痕迹
08.7
观察注入主框架和导出函数执行的职责划分
关注入口、导出函数、参数和日志
08.8
从当前执行地址回溯模块头部
复盘内存中 PE 头、节表和地址范围是否可信
08.9
使用哈希匹配导出函数并对接导出表数据
记录哈希规则、名称表、序号表和函数地址表关系
09.0
理解映像从文 ...
0236、Windows 逆向攻防:Inline Hook 框架
返回:Windows 逆向攻防篇 · 网络安全学习主页
这一节对应 10.6 - 11.4。Inline Hook 直接影响函数开头指令,比 IAT Hook 更接近代码执行路径,因此复盘重点是指令完整性、跳转覆盖范围、中转函数和恢复机制。
1、内容范围
小节
主题
10.6
Inline Hook 底层逻辑
10.7
函数参数拦截与传统钩子
10.8
标准模板化钩子框架
10.9
转发函数判断与指令完整性
11.0
指令边界对齐及破坏修复
11.1
中转函数与通用拦截
11.2
任意函数拦截测试
11.3
常规 API 转发
11.4
框架优化与卸载处理
1.1、逐节复盘
小节
主要内容
复盘点
10.6
理解 Inline Hook 直接修改函数入口的底层逻辑
关注入口字节、页属性、跳转目标和原始字节备份
10.7
从参数拦截理解中转函数的观察价值
复盘调用约定、参数位置、返回值和副作用
10.8
将 Inline Hook 整理成模板化框架
记录初始化、安装、转发、恢复、卸载等状态
10.9
判断转发函数和被 ...
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
理解映像替换为什么会造成多处不一致
对比磁盘 ...
0237、Windows 逆向攻防:x64 Hook 与指令解析
返回:Windows 逆向攻防篇 · 网络安全学习主页
这一节对应 11.5 - 12.4。x64 Hook 比 x86 更强调调用约定、寄存器参数、跳转距离、栈对齐和指令解码。复盘重点不是写 Hook,而是理解为什么 x64 环境下更容易因为上下文破坏而崩溃。
1、内容范围
小节
主题
11.5
x64 万能跳转方案及环境保护
11.6
x64 通用模板框架
11.7
x64 Stub 环境保存
11.8
寄存器参数获取与堆栈定位
11.9 - 12.0
汇编中转与模板化框架完结
12.1
MinHook
12.2
自旋锁与多线程兼容
12.3
HDE 反汇编
12.4
SIB Base/Index/Scale
1.1、逐节复盘
小节
主要内容
复盘点
11.5
理解 x64 长跳转、寄存器保存和栈对齐问题
重点观察跳转距离、入口覆盖长度和上下文破坏风险
11.6
将 x64 Hook 抽象成通用模板
记录参数、目标函数、中转区、恢复逻辑和错误处理
11.7
使用 Stub 保存执行环境
复盘保存 ...
0223、Windows 逆向攻防:前置、注入概念与控制台框架
返回:Windows 逆向攻防篇 · Windows 逆向总目录 · 网络安全学习主页
攻防篇第一部分先不急着做具体技术细节,而是把“为什么会有注入”“注入和 PE 加载有什么关系”“一个安全实验工具应该怎么组织输入、输出、校验和日志”这些基础问题整理清楚。
这篇笔记只用于个人复盘、授权实验和防护理解。凡是涉及跨进程执行、内存修改、ShellCode 或规避检测的内容,后续都只记录概念、痕迹和边界,不写成可直接照抄运行的流程。
01.0 Windows 逆向攻防篇前置要求(一)攻防篇默认前面两篇已经补过一遍。
前置内容
需要掌握到什么程度
C/C++ 基础
能读懂结构体、指针、函数指针、内存申请和文件读写
Windows API
知道进程、线程、模块、句柄、权限和错误码是基本对象
PE 结构
能理解 DOS 头、NT 头、节表、导入表、重定位和入口点
汇编基础
能看懂调用、跳转、栈帧、寄存器和常见 x64 调用约定
调试工具
能使用 VS、x64dbg、IDA 观察模块、线程、内存和调用栈
安全边界
只分析自写程序、课程样本和明确授权目标
...
0216、Windows 逆向提升:PE 前置与头结构
返回:Windows 逆向提升篇 · Windows 逆向总目录 · 网络安全学习主页
提升篇的第一块先不急着写复杂项目,而是把 PE 文件当成一个可以拆开的二进制对象来看:文件里每个字段在哪里,加载到内存后地址怎么变化,工具显示的偏移和代码里拿到的指针怎么对应。
这一部分的目标很明确:以后看到一个 .exe 或 .dll,至少能先找到 DOS 头、NT 头、文件头、可选头和节表,知道哪些字段是加载器真正关心的,哪些字段更偏兼容、标识或辅助信息。
01.0 逆向工程提升篇前置知识进入 PE 结构之前,需要先把几类基础知识接起来。
前置知识
需要能做到什么
C/C++ 结构体
能理解结构体字段顺序、大小、对齐和指针转换
指针和数组
能用“基址 + 偏移”定位二进制文件里的结构
十六进制
能习惯用 0x 表示偏移、地址、标志位和字段值
小端序
能看懂文件中低位字节在前的整数存储方式
汇编与调试
能用 VS、DBG 或 IDA 观察模块基址、入口点和内存窗口
文件读写
能把 PE 文件读入内存缓冲区,再按结构体解析
PE 解析最核心的动作其实 ...





