013、内存—内存读写与寻址
🎨 颜色标记说明
粉色:特别重要、主线必掌握、优先复盘的内容。
蓝色:核心概念、术语、分类名。
橙色:需要关注的边界、易错点、注意事项。
绿色:解释类内容、帮助理解知识点。
返回:网络安全知识库 · 上一节:内存管理与端序 · 下一节:C 语言与汇编程序框架
待整理本节用于整理内存读写与寻址规则,后续重点记录调试器中的地址表达式观察。
012、内存—内存管理与端序
🎨 颜色标记说明
粉色:特别重要、主线必掌握、优先复盘的内容。
蓝色:核心概念、术语、分类名。
橙色:需要关注的边界、易错点、注意事项。
绿色:解释类内容、帮助理解知识点。
返回:网络安全知识库 · 上一节:内存特性 · 下一节:内存读写与寻址
待整理本节用于整理内存管理与端序基础,后续补充示例图、调试截图和复盘题。
011、内存—内存特性
🎨 颜色标记说明
粉色:特别重要、主线必掌握、优先复盘的内容。
蓝色:核心概念、术语、分类名。
橙色:需要关注的边界、易错点、注意事项。
绿色:解释类内容、帮助理解知识点。
返回:网络安全知识库 · 上一节:标志寄存器 · 下一节:内存管理与端序
待整理本节用于整理内存基础特性,后续按“概念 -> 调试观察 -> 复盘问题”的方式补充。
010、存储—标志寄存器
返回:网络安全知识库 · 上一节:段寄存器 · 下一节:内存特性
🎨 颜色标记说明
粉色:特别重要、主线必掌握、优先复盘的内容。
蓝色:核心概念、术语、分类名。
橙色:需要关注的边界、易错点、注意事项。
绿色:解释类内容、帮助理解知识点。
标志寄存器
Visual Studio (一般不看这个)
X86DBG
EFLAGS:00000344
BIT:0000 0000 0000 0000 0000 0011 0100 0100
Bit 9:IF = 1(允许可屏蔽中断)
Bit 8:TF = 1(开启单步调试)
Bit 6:ZF = 1(运算结果为 0)
Bit 2:PF = 1(运算结果低 8 位中,1 的数量为偶数)
其余常用标志位:CF = 0、AF = 0、SF = 0、DF = 0、OF = 0。
注意:EFLAGS 的 Bit 1 是保留位,读取时固定为 1。:contentReference[oaicite:0]{in ...
009、存储—段寄存器
返回:网络安全知识库 · 上一节:控制流逆向 · 下一节:PE 文件结构入门
🎨 颜色标记说明
粉色:特别重要、主线必掌握、优先复盘的内容。
蓝色:核心概念、术语、分类名。
橙色:需要关注的边界、易错点、注意事项。
绿色:解释类内容、帮助理解知识点。
段寄存器
CPU 在保护模式下,主要通过分段机制和分页机制管理内存。
段寄存器:CS、SS、DS、ES、FS、GS。
段寄存器
英文
作用
CS
Code Segment
代码段寄存器
SS
Stack Segment
栈段寄存器
DS
Data Segment
数据段寄存器
ES
Extra Segment
附加数据段寄存器
FS
FS Segment
附加段寄存器
GS
GS Segment
附加段寄存器
在 Windows x86 环境中:用户模式(R3)下,FS → _TEB;内核模式(R0)下,FS → _KPCR。
R3:FS 常用于定位线程环境块(_TEB);R0:FS 常用于定位处理器控制区(_KPCR)。
在 Windows x64 环境中通常改用 GS:R ...
008、存储—通用寄存器
返回:网络安全知识库 · 上一节:调试器基础与反汇编阅读 · 下一节:数组、指针与结构体
🎨 颜色标记说明
粉色:特别重要、主线必掌握、优先复盘的内容。
蓝色:核心概念、术语、分类名。
橙色:需要关注的边界、易错点、注意事项。
绿色:解释类内容、帮助理解知识点。
通用寄存器
32 位寄存器 可以拆分使用,例如 EAX 可以拆成 AX、AH、AL。
EAX = 32 Bit,AX = EAX 的低 16 Bit,AH = AX 的高 8 Bit,AL = AX 的低 8 Bit。
AX 是 EAX 的低 16 位,AH 和 AL 是 AX 再拆出来的两个 8 位。
32 Bit
16 Bit
高 8 Bit
低 8 Bit
EAX
AX
AH
AL
EBX
BX
BH
BL
ECX
CX
CH
CL
EDX
DX
DH
DL
ESP
SP
-
-
EBP
BP
-
-
ESI
SI
-
-
EDI
DI
-
-
注意:传统 32 位 x86 中,只有 EAX、EBX、ECX ...
007、存储—寄存器
返回:网络安全知识库 · 上一节:数据:整数存储 · 下一节:控制流逆向
🎨 颜色标记说明
粉色:特别重要、主线必掌握、优先复盘的内容。
蓝色:核心概念、术语、分类名。
橙色:需要关注的边界、易错点、注意事项。
绿色:解释类内容、帮助理解知识点。
寄存器
在 32 位 x86 环境 中,通用寄存器的完整宽度主要是 32 Bit。
32 位通用寄存器的取值范围是 0x00000000 ~ 0xFFFFFFFF。
寄存器 位于 CPU 内部,每个 CPU 核心都有对应的一套寄存器。
通用寄存器:EAX、EBX、ECX、EDX、ESP、EBP、ESI、EDI。
段寄存器:CS、SS、DS、ES、FS、GS。
指令指针寄存器:EIP。
标志寄存器:EFLAGS。
注意:ESP 和 EBP 都和栈有关,ESP 通常指向栈顶,EBP 通常用于定位当前函数的栈帧。
寄存器
用途
编号
范围
EAX
累加器,乘除指令常使用 EAX
0
0x00000000 ~ 0xFFFFFFFF
ECX
循环计数器
1
0x00000000 ~ 0xFFFF ...
0217、Windows 逆向提升:PE 解析框架与节区
返回:Windows 逆向提升篇 · Windows 逆向总目录
这一部分把 PE 头结构继续推进到“能写解析框架”。核心是:从文件缓冲区出发,安全地找到 DOS 头、NT 头、可选头、节表,并能在 RVA、VA、FOA 之间转换。
1、内容范围
小节
内容
复盘点
02.5 - 03.1
PE 解析工具框架
控制台初始化、用户指令、二进制写入、DOS/NT 定位
03.2 - 04.4
NT / OptionalHeader
FileHeader、Magic、ImageBase、RVA、OEP、Alignment、SizeOfImage
04.5 - 05.5
SECTION 节区
节区定位、属性、对齐、RVA_TO_FOA、文件/内存状态转换
2、解析框架PE 解析工具建议先拆成这些模块:
模块
作用
文件读取
把 PE 文件读入缓冲区
头部校验
检查 MZ、PE 签名和边界
结构定位
定位 DOS、NT、Optional、Section
地址换算
RVA、VA、FOA 互转
指令交互
输入命令查看 ...
0219、Windows 逆向提升:无模块加载与模块隐藏原理
返回:Windows 逆向提升篇 · Windows 逆向总目录
这一部分涉及无模块加载、反射式加载、模块隐藏等双用途内容。这里只按 PE 加载机制、防护分析和检测复盘来整理,不写成可直接用于隐蔽加载的实现流程。
1、内容范围
小节
内容
复盘点
08.7 - 10.0
无模块加载
文件缓存、内存映像、导入修复、重定位修复、自加载流程
10.1 - 12.1
模块隐藏
反射式注入思路、私有映像、跨进程数据、远程入口点
2、文件状态与内存映像PE 文件不能简单按文件字节直接执行,加载器会按节表把文件状态转换成内存状态。
状态
特点
文件缓存
按 FileAlignment 排列
内存映像
按 SectionAlignment 排列
节区映射
每个节从文件偏移映射到 RVA
3、手动加载需要处理什么合法加载器会完成很多工作。复盘手动加载思路时,要理解这些工作点:
工作
说明
映像拉伸
把文件节映射到内存布局
导入修复
加载依赖 DLL,填充 IAT
重定位修复
基址变化时修正绝对地址
入口调用
满足前置条件后进入入口点
...
0221、Windows 逆向提升:PDB、TLS 与加载风险评估
返回:Windows 逆向提升篇 · Windows 逆向总目录
这一部分把 PE 分析延伸到符号、线程局部存储和加载风险评估。PDB 能让地址恢复成更可读的符号;TLS 能在线程创建/退出等时机执行回调;加载风险评估则把前面解析到的字段整理成安全报告。
1、内容范围
小节
内容
复盘点
16.9 - 18.7
DEBUG / PDB
调试目录、PDB 结构、DIA SDK、符号、类型、函数、变量
18.8 - 20.3
TLS
线程创建、同步互斥、TLS 静态/动态、TLS 回调
20.4 - 21.4
DRAW / LOAD
PE 结构图、加载风险评估、检测手法和报告汇总
2、调试目录与 PDBPE 的调试目录可能记录 PDB 路径、GUID、Age 等信息。PDB 保存符号、类型、函数、源文件等调试信息。
数据
作用
PDB 路径
编译时符号路径
GUID/Age
匹配正确 PDB
函数符号
地址到函数名
类型信息
结构体、类、枚举
源码行号
地址到源文件位置
3、DIA ...












