前言
自计算机普及以来,电脑游戏就进入了我们的生活,但当电脑游戏出现的那一刻起,随之而来的还有数不尽的“外挂“,特别是当一款游戏成为爆款之后,很有可能第二天就出破解版或者外挂脚本。作为解决人类惰性而诞生,外挂无疑会对网游产生影响,如果游戏运营商运营不善,反作弊技术落后,对外挂处理不当,稍有不慎就会毁掉一款网游。为此,运营商们绞尽脑汁想尽一切办法都要与外挂抗争到底。
好了日记要为上一篇文章填补一下坑,本期就来介绍一些游戏反作弊程序的工作原理。
在介绍之前,我先给大家科普一下什么是游戏反作弊程序,你可以把它当作绿色游戏的保护伞,保护游戏代码不被第三方恶意程序发现并修改破坏,本质上游戏和外挂他们都是电脑程序,外挂可以入侵修改游戏内存代码以达到作弊的目的,那么反作弊程序也可以通过服务器校验发现外挂,并查出游戏被修改的地方。
那这里有人会问,既然可以查出外挂为什么进行封禁呢?
这里就要牵扯到网络游戏的运行原理了,我们就拿绝地求生这款游戏说事,玩家的电脑可以理解为客户端,我们要进行多人游戏的时候就需要将所有玩家的电脑连接起来,形成一个类似于“局域网“的网络,而我们所说的服务器就是连接这些客户端的介质和桥梁。它负责将每个玩家在游戏中的动作、活动、交互收集起来,再反馈回玩家客户端上,由此形成我们所熟知的网络游戏。
而绝地求生这类游戏属于FPS射击类型,游戏中交互方式太多,而且太频繁,假设我们每一次射击都可以命中造成伤害,一秒可以射出10颗子弹,那不可能一一去向服务器校验汇报吧,那样服务器负载太大,直接就会拓机,所以反作弊程序检测起来太困难,同时为了确保不会误封,一般都会多次检测核实,加大了工作量。这就是FPS游戏为什么外挂多且难以查封的原因之一。
BE (BattlEye)
这个黄色大眼睛图标大家是否似曾相识,它就是国外最大的游戏反作弊系统,绝地求生、方舟、逃离塔克夫等游戏都可以看到它的身影,它是和游戏程序独立开来的,游戏通过调用BattlEye 反作弊程序的类名函数(理解为姓名)实现数据保护和程序加密。
它和腾讯的TP反作弊系统相近,都是通过扫描内存、记录用户键盘鼠标信息回传给服务器,同时还会扫描硬盘(不会保存用户个人隐私资料)比对用户文件通过特征码实现封禁,这就是有BattlEye反作弊程序在,很多作弊软件会选择运行后直接清空自身源文件的原因。
而且BattlEye 还在电脑中拥有最高的权限,它会采集几乎所有电脑硬件的HWID(电脑中不可更改的硬件信息),所有!所有! 所有!如果玩家长时间在一台电脑上作弊,那么不仅你的硬盘会被BND,还有网卡、mac地址、IP地址、主板都会被纳入黑名单,解决办法就只有换硬件,或者在作弊之前伪造一个HWID信息。
EAC(Easy Anti Cheat)
这是一款来自美国的游戏反作弊系统,同属于EPIC(就是那个免费送游戏的平台)一个公司的产品,它也比较常见,像堡垒之夜、黎明杀机、APEX英雄、腐蚀等游戏都采用EAC反作弊程序,它采用尖端混合技术打击作弊,程序属于内核级(拥有最高权限),和游戏是同步运行的。
相较于BE,EAC的检测机制就比较简单一些,它不会去扫描用户的个人硬盘(涉及到国外隐私法律问题),但是在隐藏算法上EAC就是老大哥,在游戏启动时,EAC就会将游戏中核心敏感的数据基址隐藏在大量无用代码中,防止作弊软件找到,同时EAC还会跟踪游戏线程、发现未知新建线程,以此判断是否是外挂注入创建的线程。
EAC工作在系统核心驱动层,它还会检测所有电脑中的驱动程序,以及同等级的内核驱动的附加、创建,这就是很多外挂必须在EAC启动之前就必须打开的原因之一。
VAC(Valve AntiCheat)
即 Valve 反作弊技术,它封禁只针对于接入了VAC的游戏,VAC是2005年公布的VAC2代,一次被Ban,永久享受,没有解封的可能性,而且还是带有连坐性质的,只要你账户中有一款游戏因为VAC被封,那么其他接入了VAC反作弊程序的游戏你同样也不能玩,而且还会在steam账户上公开处刑。
VAC在启动时会向游戏客户端发送请求,如果客户端没有回应,很有可能被纳入违规行为,而且VAC更新非常频繁,每次使用后都会在电脑上遗留一部分程序,也就是说当作弊者试图研究VAC并且绕过它的时候,他只会看到vac的一小部分,而不可能完全绕过。
VAC特别擅长利用大数据排查作弊者,通过扫描内存和检测渲染器来判断玩家有没有透视、修改游戏数据,然后再利用特征比对游戏中其他相似的玩家,说到这里下一步是不是会被封号了,答:不会,接下来VAC最有魅力的地方就来了,它会悄悄记录游戏中作弊的玩家,然后再通过大数据排查玩家的好友有没有开挂、有多少开挂,游戏代码是通过挂钩修改、还是注入修改,证据确凿后,统一起来秋后算账。
所以我们经常说VAC垃ji,基本没几个封号的,但是VAC的优点在于一封就是成批成批的封禁,而且被封的玩家几乎是999.9%没有吴封的。
TP(TenProtect)
是由腾讯推出的安全系统,说它是一个游戏反作弊系统有点片面,因为它同时具备防止木马盗号功能,能有效的让用户游戏帐号和虚拟财产不被窃取。在国内TenProtect拥有得天独厚的环境,就是因为这样的优势,TenProtect的反作弊检测方式几乎用变态来形容,在游戏运行时TP启动,然后对正常登录游戏的行为进行检测,游戏过程中开始检测随游戏一同加载的非法模块,非法加速,然后调用内核级的反调试技术,保护程序不被外挂进程调试和分析。
最后对游戏进行指令混淆,增加外挂作者的逆向难度,采用特征码比对,能准确检测到外挂的使用。说道这里你以为结束了?不,现在才刚刚开始,在上面全部的过程中TP还会在后台扫描玩家电脑中所有磁盘文件,检测游戏目录下的文件是否被第三方程序篡改,一旦确定了外挂程序源文件,TP会将文件上传到服务器,进行脱壳分析,从软件内部打击外挂。
到这里真正结束了?那就太天真了,TP随游戏运行而运行,但不随游戏结束而结束,当玩家退出游戏时TP仍然在玩家任务管理器列表,在游戏结束后,对释放内存的程序信息进行分析,这就是很多玩家开的时候没封,但下次登录的时候直接吃套餐补封的原因!
网易云易盾
网易云易盾是网易云旗下一站式云安全服务中心,游戏反作弊只是它其中的一个板块,它还支持视频检测、短信码验证、实名认证、登录保护等等,在端游上很难看到它的身影,因为它反作弊系统主要针对移动平台的游戏,如:Android-IOS游戏加固、小程序游戏智能反外挂、H5游戏反外挂等,在手机上网易云易盾侧重于对XX助手、XX精灵、XX修改器的检测。
易盾在运行时会首先检测自身运行环境,判断是否是模拟器,防止外挂程序反编译,然后对游戏代码进行逻辑混淆和反调试,加大逆向难度,还会通过机器AI智能学习,反模拟点击。当外挂试图将程序注入到游戏时,根据观测,易盾会对程序底层进行加密,在java层/C层部署防御,抵挡外挂HOOK攻击、内存DUMP、代码注入等。
FF(FairFight)
这是《战地》系列游戏的反作弊系统,可以部署在服务器上,FairFight使用客观的服务器端报告工具对内存指标进行交叉检查,以及上传分析玩家的行为数据判断检查,你可以理解为被动型的反作弊系统,而以上的反作弊系统统都为主动式反作弊系统。
FairFight你甚至都可以认为它是一个公平战斗系统,因为它大部分封号都来自于玩家的举报,自身封号就局限于对玩家的战绩检测来判断玩家是否作弊,就算是正常玩家被举报多了也会被踢出战局。
其实开发反作弊系统的成本非常高,这里面需要大量的资本注入和时间资源,一个优秀的反作弊系统并不是一朝一夕就能成的,它是通过长时间和外挂的对抗中,一次又一次的摸索出的经验,还要在不断更新迭代的系统版本中防止外挂利用新的漏洞、新的技术对反作弊系统实施打击破坏。
而且以现在游戏行业的窘迫来看,游戏小厂没有能力开发自己的反作弊系统,也没有大量的资金支付高昂的反作弊系统使用费,因此只能靠后台数据、玩家举报来判玩家是否使用了外挂,这就在封号效率和封号概率上出现了问题。所以玩家不要再吐槽小厂游戏外挂多,环境差,因为他们也没有什么办法,只能看着自己的游戏一步一步被外挂带向深渊,历史上因为外挂破产的游戏公司也不占少数。
好了,文章结尾日记也想告诉大家,没有反作弊系统可以100%杜绝外挂,反作弊和外挂的博弈一直都在,所谓魔高一尺、道高一丈,何况反作弊在明,外挂在暗呢,只有当玩家真正意识到绿色游戏的重要性、积极主动举报作弊玩家、以及游戏厂商利用法律武器对外挂进行降维打击,游戏的环境才会真正的有所好转。#PC游戏# #抵制外挂#