Skip to content

Releases: Huai-Tian/GnptHooks

Release list

GnptHooks v0.10

Choose a tag to compare

@Huai-Tian Huai-Tian released this 11 Oct 09:34
82faa4d

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 法务段为准。