一句话总结:反作弊不是「扫一遍内存」那么简单,它分用户态行为监测、内核驱动驻留、云端统计三条线同时取证,本篇从防守视角拆开 EAC、BattlEye、Vanguard 的检测逻辑,也顺带说清为什么这类对抗最终拼的是成本。
上一篇 Cheat Engine 讲的是「怎么找」,进阶系列收尾篇 讲了「检测面三层」。这篇把视角彻底翻过来:站在反作弊工程师的位置,看他们手里到底有哪些牌。
我不做攻防立场,只讲机制。原因很实在:这套知识对做安全产品、做游戏服务端、做企业终端防护的人都有用,比单纯研究怎么绕过有价值得多。
三条防线,不是一条
很多人以为反作弊就是「检测外挂进程」。真实的商业反作弊是三套系统一起跑:
第一条:用户态取证。反作弊进程(EAC 的 EasyAntiCheat.exe、BattlEye 的服务)在游戏启动时枚举系统状态:谁打开了游戏进程的句柄、加载了哪些模块、有没有调试器附加、驱动列表里有没有可疑项。这一层的成本最低,覆盖也最广。
第二条:内核驱动驻留。三家都有内核组件(EasyAntiCheat.sys、BEDaisy.sys、vgk.sys)。区别在驻留策略:Vanguard 是开机自启、常驻内存,即使不玩游戏也在跑;EAC 和 BattlEye 一般跟随游戏启动、退出后卸载。这解释了为什么玩家对 Vanguard 的观感最差——它确实常驻,也确实能看到更多东西。
第三条:云端统计。这层最容易被忽略,却最难对付。服务端掌握所有玩家的原始数据:命中率分布、爆头率、反应时间、移动轨迹的平滑度、视角角速度的频谱特征。人类操作的角速度有明显的高频抖动和过冲,机器辅助的曲线光滑得可疑。单场看不出,几百场累积下来就是清晰的异常。
检测信号清单
把常见手段列成表,按「取证强度」排序:
| 信号 | 原理 | 绕过成本 |
|---|---|---|
| 句柄枚举 | 遍历系统句柄表,找指向游戏进程的可疑句柄 | 低:换访问方式即可 |
| 模块枚举 | 扫描进程模块列表,比对白名单 | 中:需要隐藏模块 |
| 内存页属性 | 检查是否出现 PAGE_EXECUTE_READWRITE 等异常页 | 中:改页属性会触发校验 |
| 代码完整性 | 对 .text 段做哈希,与服务器下发值比对 | 高:改一个字节就露 |
| 心跳与时间戳 | 检测游戏主循环是否被挂起、时钟是否被改 | 高:影响正常逻辑 |
| 输入时序 | 键鼠事件的间隔分布是否呈人手的随机性 | 很高:模拟成本极高 |
| 服务端统计 | 命中率、角速度、反应时间的长期分布 | 最高:无法在客户端解决 |
表格看完能得出一个结论:客户端能做的手段,绕过的成本从低到高;服务端统计这条线,客户端根本碰不到。这就是为什么现代反作弊的重心在往服务端迁移。
图 1:三条防线的取证强度与成本对照,第三层客户端无法对抗
EAC、BattlEye、Vanguard 的分工差异
三家的技术路线差异,本质是产品定位差异:
EAC(Epic 旗下)走的是「够用就好 + 低打扰」路线,大量中小游戏用它,配置简单、授权便宜,检测强度中上。BattlEye 是老牌,驱动做得激进,PUBG、R6 这类竞技射击长期用它,误封争议也最多——激进检测必然带来误伤。Vanguard(拳头)走极端路线:内核驱动开机常驻、要求系统开安全启动、Windows 内核级隔离,强度最高,代价是兼容性和用户观感。
没有谁绝对更好,这是个典型的三角权衡:检测强度、兼容性、用户接受度,最多占两样。
HWID 封禁:封号之后的事
封号只是第一步,真正的威慑是设备指纹。HWID 封禁采集的标识包括主板序列号、硬盘序列号、网卡 MAC、卷序列号、GPU 设备 ID 等,组合起来形成稳定指纹。绕过需要改硬件标识,成本高且有法律风险。这也是「封号不如封机器」这句话的由来。
顺带说一句我的判断:HWID 封禁的误伤率被低估了。二手硬件、网吧机器、共用设备都可能被连带,这块的申诉机制普遍做得不好,属于行业性的欠账。
对正经开发者的启发
如果你在做安全产品、游戏服务端或企业终端,这套机制有三点可直接借鉴:
- 分层取证比单点检测稳。任何一层被绕过,另外两层仍能兜住,这跟纵深防御是同一个道理。
- 统计特征比规则匹配耐打。规则会被针对,行为分布不会——人的手速有物理上限。
- 成本思维:反作弊不是要把作弊者全灭,而是把作弊成本抬到不划算。同理,企业防内鬼也是这个逻辑。
收尾与边界
技术上这些都可以公开讨论,但用在在线游戏上就是另一回事了——检测机制和绕过手段的对抗,本质是一场猫鼠游戏,参与的一方要付出封号、硬件封禁甚至法律代价。本系列始终只建议在单机、自建服务器和 Pwn Adventure 这类靶场里练习。
下一篇回到实操:CE 能找单个值,但一整个玩家结构体(坐标、血量、阵营、骨骼)挨在一起,手工抠太慢,用 ReClass 一次还原出整个对象的布局。

发表评论
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。