首页
社区
课程
招聘
[原创]深度理解 VEH-CheatEngine vs VEH-PAGE_GUARD
发表于: 4天前 1345

[原创]深度理解 VEH-CheatEngine vs VEH-PAGE_GUARD

4天前
1345

本文将从原理到源码、从实验到实战,彻底讲清楚两种方案的本质差异,并论证 CE VEH Debugger 的断点核心是 DR0-DR3 + DR7 硬件调试寄存器

特征:页级粒度,一次性触发,自动消失。

特征:字节级精度,CPU 硬件执行,持久有效。

CE → Memory View → Debug → 设置第 5 个断点:

4 个。不多不少。正好是 DR0、DR1、DR2、DR3。

PAGE_GUARD 没有这个限制——你想给多少页加 GUARD 都行。

CE VEH 断点选项:

与 DR7 位域完全对应:

PAGE_GUARD 做不到

在 VEH Handler 内拦截,CE 断点命中时:

如果是 PAGE_GUARD:

实测是 0x80000004。铁证如山。

VEH Handler:

源码直接操作 DR 寄存器。没有任何 VirtualProtect、PAGE_GUARD 的影子。

用 API Monitor 监控 CE 设置 VEH 断点时的系统调用:

CE VEH Debugger 在以下场景稳定工作:

如果是 PAGE_GUARD:

多线程游戏 + PAGE_GUARD = 直接GG。

也别把它一棒子打死。它有自己的定位:

一句话:PAGE_GUARD 是单线程穷人的无限断点,自己查查自己没问题。

输出:

这就是 CE VEH Debugger 的核心原理。20 行代码复现。

维度 PAGE_GUARD DR7 硬件断点
粒度 4KB 整页 1 / 2 / 4 / 8 字节
数量 无限 最多 4 个
触发异常 0x80000001 0x80000004
多线程 竞态灾难 安全(每线程独立 DR)
性能开销 高(同页误触发) 零(CPU 硬件比对)
触发后状态 GUARD 自动移除 断点持续存在
监控类型 读 / 写 执行 / 写 / 读写
检测难度 VirtualQuery 一查便知 需要 GetThreadContext
// 给内存页加上哨兵属性
DWORD old;
VirtualProtect(addr, size, PAGE_READWRITE | PAGE_GUARD, &old);

// 任何线程碰一下这个页 → 触发异常
// ExceptionCode: STATUS_GUARD_PAGE_VIOLATION (0x80000001)
// 然后 GUARD 自动移除,需要手动恢复
// 把目标地址写入调试寄存器
ctx.Dr0 = (DWORD_PTR)targetAddr;
ctx.Dr7 = 0x000D0001;  // 启用 DR0,写入监控,4字节

// CPU 每条指令自动比对
// 精确命中 → 触发 #DB 异常
// ExceptionCode: STATUS_SINGLE_STEP (0x80000004)
"You can only have 4 breakpoints at a time when using the VEH debugger"

[内核课程]《Windows内核攻防实战》!从零到实战,融合AI与Windows内核攻防全技术栈,打造具备自动化能力的内核开发高手。

收藏
免费 22
打赏
分享
最新回复 (19)
雪    币: 158
活跃值: (5021)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
学习。
3天前
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
66
2天前
0
雪    币: 180
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
4
nice
2天前
0
雪    币: 7524
活跃值: (6505)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
谢谢分享  
2天前
0
雪    币: 3311
活跃值: (7273)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6

善翁 
 5 楼
谢谢分享  
2天前
0
雪    币: 106
活跃值: (1804)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
mark
2天前
0
雪    币: 1113
活跃值: (1026)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
谢谢分享 ,学习大佬
2天前
0
雪    币: 950
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
9
thanks
2天前
0
雪    币: 416
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
10
学习学习
2天前
0
雪    币: 206
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
11
good
2天前
0
雪    币: 6294
活跃值: (11302)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
1天前
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
13
666
1天前
0
雪    币: 12949
活跃值: (7287)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
感谢分享,看看隐藏
1天前
0
雪    币: 21929
活跃值: (6995)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
谢谢分享  
1天前
0
雪    币: 8716
活跃值: (5676)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
谢谢大佬 的分享 写的很详细,感谢
1天前
0
雪    币: 2790
活跃值: (6507)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
17
感谢分享!
1天前
0
雪    币: 206
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
18
可以的
1天前
0
雪    币: 421
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
19
mark
14小时前
0
雪    币: 6276
活跃值: (8055)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
所以还是从现在开始就让ai写一套x86的指令集规范,然后自研架构,遵循intel手册的指令规范,等未来国产光刻机问世,说不定可以找工厂帮忙代工。
1小时前
0
游客
登录 | 注册 方可回帖
返回