几年前作者研究反作弊工作时,总结了不同反作弊系统的更新跟踪方式:
- EasyAntiCheat:曾使用自身 CDN(
https://download.eac-cdn.com/api/v1/games/{game_id}/client/{system}/download/?uuid=1239688
,game_id
为游戏唯一标识,system
为目标平台),被 Epic Games 收购后切换到 EpicGames CDN(https://modules-cdn.eac-prod.on.epicgames.com/modules/{product_id}/{deployment_id}/{system}
,product_id
为游戏唯一标识,deployment_id
为部署的唯一标识,system
与旧 CDN 相同)。下载游戏模块后,文件数据熵高,推测被加密或压缩,版本间头部a7 ed
不变。作者与朋友找到解密算法(void decode(char *memory_block, int total_size)
函数),解密后得到 PE 图像EasyAnticheat.packed.dll
,但该二进制文件受 VMProtect 保护,需通过LoadLibraryA
加载来进一步分析,找到.data
节有高熵且较大,其中存储着驱动和内部模块,加密模块按特定顺序存储(<encrypted_module> <size>
),可通过搜索零填充来提取。 - Battleye:德国流行的反作弊系统,CDN 为内部自建,结构简单,先获取最新版本(unix 时间戳,如
1746714230
),再用版本号从实际 CDN 下载模块(https://cdn.battleye.com/{game}/{version}
,game
可能值有eft
等),下载的二进制文件包含其他字节需过滤,PE 模块位于偏移0x200
,下载文件为BEService.exe
,其启动时会提取内核驱动,作者曾用旧下载链接但已删除。 - Electronic Arts Anti-Cheat (EA-AC):2022 年推出,用于《FIFA》等游戏,安装程序下载链接为
https://cdn.eaanticheat.ac.ea.com/EAAntiCheat.Installer.exe
,可使用7z
提取内容,不再随安装程序携带驱动,需在运行游戏时或逆向工程下载获取。 - Vanguard:用于《Valorant》和《League of Legends》,由 Riot Games 开发,提供公共 API 可获取最新配置(
https://clientconfig.rpg.riotgames.com/api/v1/config/public
),包含反作弊模块的版本和 URL,下载并提取文件后包含驱动和用户模式组件。 - Conclusion:不同反作弊的 CDN 存在差异,虽可能给研究人员带来不便,但反作弊的主要目的是保护游戏,而非保护 CDN。
Appendix:
- EQU8:主要用于《Splitgate》,下载 URL 为
https://download2.equ8.com/v1/a1/{id}/updates.json
({id}
为游戏唯一标识),可解析响应结构获取anticheat.x64.equ8.exe
文件。 - FACEIT:用于 CSGO 等游戏的私人联赛,下载链接为
https://anticheat-client.faceit-cdn.net/FACEITInstaller_64.exe
,仅包含前端。 - ESEA:需有账号,下载页面有 CAPTCHA 较不便,下载链接为
https://play.esea.net/index.php?s=downloads&d=download&id=1
。
- EQU8:主要用于《Splitgate》,下载 URL 为
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。