🎮 How Kernel Anti-Cheats Work
来源: s4dbrd.github.io/posts/how-kernel-anti-cheats-work
标签: Security Kernel Anti-Cheat Game Security Windows
标签: Security Kernel Anti-Cheat Game Security Windows
📋 概述
这是一篇关于现代内核级反作弊系统工作原理的深度技术文章。作者详细解释了为什么用户态保护不够、内核反作弊的架构设计、主要反作弊系统(BattlEye、EAC、Vanguard、FACEIT)的技术特点,以及这场"军备竞赛"的演进历程。
🔑 核心观点
为什么用户态保护不够?
用户态(ring 3)进程受制于内核(ring 0)。任何用户态保护都可以被内核驱动绕过——内核驱动可以 hook 系统调用、patch PEB 模块列表、返回伪造数据。用户态反作弊对内核级作弊完全"失明"。
军备竞赛的演进
- 用户态作弊 → 内核作弊 → 内核反作弊
- BYOVD 攻击(利用有漏洞的签名驱动获取内核权限)→ 驱动黑名单
- 虚拟机作弊(hypervisor 运行在操作系统之下)→ 虚拟机检测
- PCIe DMA 硬件作弊(直接读取游戏内存)→ 仍在开发防御方案
🏗️ 三大主要系统
BattlEye
用于 PUBG、Rainbow Six Siege、DayZ、Arma 等游戏。内核组件是 BEDaisy.sys。已有详细的公开逆向工程研究(secret.club、back.engineering)。
EasyAntiCheat (EAC)
现属 Epic Games,用于 Fortnite、Apex Legends、Rust 等。三层架构设计,与 BattlEye 类似但实现细节不同。
Vanguard
Riot Games 自有反作弊,用于 Valorant 和 League of Legends。特点:在系统启动时加载内核组件(vgk.sys),而不是游戏启动时;对驱动白名单采取激进策略。
FACEIT AC
用于 FACEIT 竞技平台(在 CS:GO/CS2 竞技玩家中流行)。学术研究分析其架构属性,被认为在竞争中有效。
📐 三层架构模型
- 内核驱动:运行在 ring 0,注册回调、拦截系统调用、扫描内存
- 用户态服务:以 SYSTEM 权限运行,通过 IOCTL 与内核驱动通信,处理网络通信和禁令执行
- 游戏内 DLL:注入到游戏进程,执行用户态检查,与服务通信
📚 学术参考
- ARES 2024 论文:"If It Looks Like a Rootkit and Deceives Like a Rootkit" —— 从 rootkit 分类学角度分析 FACEIT AC 和 Vanguard
- 论文指出:有效的内核反作弊必然具有与恶意软件相同的技术特征,因为这些 API 提供了检测作弊所需的可见性
🧬 探索自 Hacker News Best | 2026-03-16 | HN 讨论