Repository navigation
Releases: Huai-Tian/GnptHooks
Releases · Huai-Tian/GnptHooks
Release list
GnptHooks v0.10
v0.10
AMD SVM/NPT 内核 hook 框架。在运行中的 Windows 上接管全部 CPU 核心,通过双 NPT 视图实现稳态零 VM-Exit 的内核函数 hook,公开 API 供第三方使用。
核心能力
三种 hook 模式
| 模式 | 机制 | 读/写透明 | 稳态成本 | 容量 | 适用 |
|---|---|---|---|---|---|
普通模式 (Flags=0) |
双 NPT 视图 + CodePage | 外部读可见(配套读透明单步) | 0 exit/命中 | 条目数限 | 冷/稀疏目标 |
| TRANSPARENT | DR0-3 线性断点,原页恒等不动 | 结构性透明 | 1 exit/命中 | 每核 ≤4 | 热靶、PG 覆盖目标 |
| NX-FENCE | 页级 NX 入口陷阱 + rearm 闭环 | 结构性透明 | 2 exit/命中 | 无限 | PG 安全 × 大容量 |
引擎能力
- MSR 拦截 API:架构覆盖范围内任意 MSR 的读伪造 / 写监控回调(
GnptMsrHookInstall) - CPUID 虚拟化隐蔽:接管核上 SVM 位清零、无签名 leaf 归零、max-leaf 真值
- NPT 自我隐蔽:引擎自身页表页(约 2100 页)对 guest 读回零,稳态零 exit
- TSC 时间轴补偿:exit 驻留从 guest 时间线扣除 + 跨核钳制,时序检测只见一致变慢
- 私有 root 域:32 门私有 root IDT(root 异常改道取证 bugcheck)+ 私有 root CR3 快照树(改 OS 页表项劫持 VMM 页的通道闭合)
- 时钟域隐蔽:PM_TMR IO 拦截 + 读代答虚拟轴补偿,guest 双时钟源互证一致
- 侧信道硬件闭合(Zen5 类平台):NMI virt + IBS/PMC virt,root 指令计数不泄漏进 guest 计数器
- 映像内 cave 跳板槽:跳板槽刻在驱动映像可执行节尾碎片,地址空间无裸池页指纹
- 调试子系统忠实性:TF 单步 / DR 断点 / int1 / ICEBP 全部裸机等价投递
验证
两个 AMD 平台物理机毕业(Ryzen 7 5800H 16 核 / Ryzen 5 9600X 12 核):
零 exit 拦截累计 460 万+ 次 · DR 模式 2,535 exit/s 持续 600 秒全绿 · 全核会话 3,003 秒 · 干净卸载(每核 SVME 回读 = 0、NPT 页账目精确)
使用
- 框架以源码形态集成(VS2022 + WDK,x64);
main.c为双构建通用简洁示例(热靶 TRANSPARENT hook + 冷靶普通模式 hook + LSTAR MSR hook),替换为你自己的逻辑即可 - Debug 构建 = 完整观测(文件日志 + 事件环 + 蓝屏黑匣子看门狗);Release 构建 = 零日志代码进产物,两种构建行为一致
- API 契约见
hook.h/msr.h头注释;环境要求与平台风险见 README_ZH.md ,AI 协作者契约见 README_AGENT.md
已知边界
- 剂量敏感平台:部分 AMD 平台全核 SVM 长驻存在平台级不稳定(与代码无关;README“平台风险”章节含完整操作规程)——日常开发用低剂量构建,全核会话留冷启后短促验证
- PMC/IBS virt 依赖平台特性位(Zen5 全有;无该特性的旧平台缺这层隔离)
- S3/S4 睡眠路径待自然场景验证
法律
仅限非商业用途。再分发条款与免责声明以 README 法务段为准。