首页
社区
课程
招聘
[原创]深度理解 VEH-CheatEngine vs VEH-PAGE_GUARD
发表于: 2026-6-22 02:02 7612

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

2026-6-22 02:02
7612

本文将从原理到源码、从实验到实战,彻底讲清楚两种方案的本质差异,并论证 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内核攻防全技术栈,打造具备自动化能力的内核开发高手。

收藏
免费 0
打赏
分享
最新回复 (47)
雪    币: 158
活跃值: (5156)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
学习。
2026-6-22 14:16
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
66
2026-6-23 03:46
0
雪    币: 301
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
4
nice
2026-6-23 05:18
0
雪    币: 7559
活跃值: (6545)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
谢谢分享  
2026-6-23 08:15
0
雪    币: 3367
活跃值: (7353)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6

善翁 
 5 楼
谢谢分享  
2026-6-23 17:36
0
雪    币: 106
活跃值: (1849)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
mark
2026-6-23 17:49
0
雪    币: 1113
活跃值: (1096)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
谢谢分享 ,学习大佬
2026-6-23 22:21
0
雪    币: 1046
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
9
thanks
2026-6-23 22:44
0
雪    币: 481
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
10
学习学习
2026-6-24 00:49
0
雪    币: 206
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
11
good
2026-6-24 02:35
0
雪    币: 6394
活跃值: (11452)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
2026-6-24 09:36
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
13
666
2026-6-24 10:12
0
雪    币: 13039
活跃值: (7392)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
感谢分享,看看隐藏
2026-6-24 10:36
0
雪    币: 22046
活跃值: (7100)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
谢谢分享  
2026-6-24 11:04
0
雪    币: 8806
活跃值: (5789)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
谢谢大佬 的分享 写的很详细,感谢
2026-6-24 12:15
0
雪    币: 2790
活跃值: (6568)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
17
感谢分享!
2026-6-24 20:05
0
雪    币: 206
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
18
可以的
2026-6-25 01:09
0
雪    币: 449
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
19
mark
2026-6-25 12:51
0
雪    币: 6379
活跃值: (8192)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
所以还是从现在开始就让ai写一套x86的指令集规范,然后自研架构,遵循intel手册的指令规范,等未来国产光刻机问世,说不定可以找工厂帮忙代工。
2026-6-26 01:47
0
雪    币: 4353
活跃值: (5178)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
21
6
2026-6-26 10:08
0
雪    币: 77
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
22
good
2026-6-26 12:04
0
雪    币: 233
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
23
2026-6-26 15:33
0
雪    币: 5115
活跃值: (5867)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
24
感谢分享。
2026-6-26 18:35
0
雪    币: 200
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
25
感谢分享。
2026-6-27 03:27
0
游客
登录 | 注册 方可回帖
返回