首页
社区
课程
招聘
[分享]vt-x反作弊思路猜想
发表于: 2天前 699

[分享]vt-x反作弊思路猜想

2天前
699

VT-x: Intel虚拟化技术
VMXON: 启动 VT-x 驱动
Hyper-V: 它是一个 VT-x 驱动
当 Hyper-V 开启时, 其余 VT-x 驱动无法启动, 因为 VMX 只能被一个 Hypervisor 占用

反作弊防御思路:

一、方式1:反作弊自己就是 Hypervisor(最强模式)
这种情况系统未启用 Hyper-V 反作弊在早期阶段启动, 比 Windows 内核更早抢先执行 VMXON 自己成为 VMX Root , 此时 Hyper-V 反而无法启动, 因为 VMX 已被占用, 这类方案要求驱动开机极早启动并且有完整的 VMX 实现, 对系统版本高度适配

一、方式2:依赖 Hyper-V(常见)
如果系统已启用 Hyper-V, 那么反作弊不会再执行 VMXON, 它会运行在 Windows 内核利用 VBS(Virtualization-Based Security) / HVCI(内存完整性) 环境通过 Hyper-V 提供的隔离机制获得更高信任级别, 这种情况下它不会自己 VMXON 而是运行在 Hyper-V 之上

方式2的理解可以参考VMware的嵌套虚拟化(Nested Virtualization), 当你系统中启用了 Hyper-V 然后在其上运行 VMware Workstation 这种情况不是“两个 VMXON 抢占”,而是 Hyper-V 占用真实硬件, 而 VT-x VMware 使用 Hyper-V 提供的虚拟 VT-x

一、方式3:完全不使用虚拟化
更多反作弊是根本不碰 VT-x 它们只做内核完整性监控\驱动枚举\页表校验\调试检测, 这类不会涉及 VMXON

那么即便是系统已经启动Hyper-V能否还能抢先占据VMXON?
现实中: 几乎不可能, 因为在启用 Hyper-V 的系统上,启动顺序是这样的:

1
2
3
4
5
6
7
8
9
UEFI
Windows Boot Manager
Hyper-V Hypervisor(最早加载)
Windows 内核(被当作 Guest)
普通驱动

关键点:Hyper-V 在 Windows 内核之前启动, 因此当普通驱动开始加载时VMX Root 早已被 Hyper-V 占用, 驱动里执行 VMXON 必然失败

为什么很多外挂要求关闭“内存完整性”: 因为开启“内存完整性” = 启用 VBS, VBS 依赖 Hyper-V, Hyper-V 会占用 VMX, 结果外挂自己的 VT-x 驱动无法 VMXON。

总结

以上内容是作者为入门 vt-x 学习的前置知识, 供大家参考讨论


传播安全知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2天前 被mb_binusgki编辑 ,原因: 补充内容
收藏
免费 1
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回