聊聊游戏的反作弊系统为何射击游戏外挂现象难以避免?
导语
只要你在电脑上玩过射击游戏,或多或少你都听过甚至遇到过所谓的"神仙"——即那些开挂的恶劣用户,他们不仅严重影响了其他人的游戏体验,还让游戏本身失去了乐趣,那么笔者朋友相信你也好奇过:为啥就不能有家游戏厂商做到"天下无挂"呢?
要回答这个问题,首先我们要了解主流射击游戏都是怎么反外挂的——除了腾讯以及V社外,大多数游戏厂商选用的都是第三方的反作弊方案,比如《绝地求生》采用的BattleEye,《APEX 英雄》采用的Easy Anti-Cheat ,那么这些反作弊软件是如何工作的呢?
首先,反作弊系统本身分为二个目标——第一个是阻止作弊程序的运行,第二个是记录玩家的软件数据,以便后续分析及处理,让我们我们先来谈谈反作弊软件如何阻止作弊程序的运行,而外挂又是怎么绕过去的。传统意义上的反作弊
类似BattleEye的反作弊系统第一部分有些类似杀毒软件——在游戏启动前扫描运行环境确保足够安全,而在运行时保护游戏程序不受到外挂的修改来做到阻止外挂运行的目的,并确保全程数据都加密发送至相应服务器,如果数据中断等情况则会中止玩家的会话,而且现代的反作弊软件也是愈发的聪明了,通过可疑行为判断等方式无需提前获取外挂特征码即可阻止某些外挂的运行。
系统本身的缺陷
那么外挂是如何破解上诉防御的呢?一般来说,通过DLL注入甚至内核驱动程序来让反作弊程序误以为游戏本体未作修改,达到瘫痪反作弊的"防御"部分。为什么游戏开发商无法完全堵住这个明显的漏洞?这因为Windows的漏洞不断被发现,而由于内核驱动程序是硬件之间通信所需的文件,所以优先级往往高于反作弊程序,还有些作弊程序以(通过黑产等渠道获取的)合法的数字证书给自身签名....以致于开发者想完全堵住上述漏洞基本上是不可能完成的任务;话虽如此,开发者仍然可以保护相关内存区域,加密客户端和服务器之间的通信并重新验证客户端中的值等手段来缓解和打击上述问题。
有时候游戏会让这个问题更糟
BUG让普通玩家被"透视"被"穿墙"
给每个游戏写外挂的难度是不太一样的——例如《绝地求生》这种本身引擎就相对开放而自己代码水平又不太行的大火游戏和育碧热门团队战术拟真游戏《彩虹六号》来对比,你就会发现《绝地求生》的外挂可以说是多到不到哪里去了,这是因为《绝地求生》写外挂的时间成本较低,而且反作弊系统大多情况下仍然需要取得一定量的使用该外挂作弊玩家的数据才能封杀,这也就导致了《绝地求生》外挂屡禁不绝的现象...
隐私还是公平,这是一个问题
反作弊系统收集了很多信息
EasyAntiCheat等反作弊系统会在你运行游戏的全程对你电脑的各种进程以及完整性做出检验——即使你运行的单人部分,而且你也不能将它关掉,这也引发了部分玩家对隐私性的担忧,但实际上在严格的欧盟版权法的促进下,反作弊系统是绝对不能将收集到的信息用作其他目的的,他们也都承诺不将收集到的信息用作反作弊之外的用途,不论读者是否赞同或认为他们的说法,你都不能关闭反作弊系统,因为那样绝大多数情况下都会被"秋后算账"
秋后算账也是很重要的部分
现在,很多反作弊系统在人工的干预前就可以进行攻击性防御了——外挂无法篡改(因为加密了)或禁止(因为一禁止游戏就掉了)反作弊系统发送给自家服务器的上述信息,而这也是反作弊系统打起反攻号角的地方了:别看现在闹的欢,反作弊系统拉清单,那些异常数据的玩家往往会先暂时停权,检查后再决定是否放回去。
暂时停权账户24小时的提示
游玩过《绝地求生》的玩家应该知道这是什么意思:如果一名玩家历史战绩次次"落地成盒",然后突然就"八百里外爆了一队人的头",那么很有可能本局还没结束就被提示暂时封禁24小时了。
而这时候人工也要发挥作用了——大多数反作弊系统都有类似VAC"监察系统"的东西:即让工作人员/志愿者(一般是信誉较好的玩家)观看第一人称画面,判断是否玩家是否是外挂,这也是为啥大多数开挂者和主播都不会用"小陀螺"那种暴力外挂,因为一眼看过去就知道你是不是外挂了。中国特色
这时候要提一下一个数据了——99%的《绝地求生》作弊玩家来自中国,国外在《绝地求生》最火热的时候有不少网民请愿对中国区域锁定(因为他们受不了神仙),这似乎指出一个有些让人尴尬的事实:中国的国情导致了外挂的猖獗,在邻国韩国,开挂、代练等行为皆为犯罪,部分被暴雪抓到的韩国玩家因在《守望先锋》中作弊被判缓刑2年并罚款,虽然传播和售卖外挂在中国也属违法行为,但是普通玩家作弊属于违法行为这在中国是难以想象的。
某款主播定制外挂
更恶劣的是,某些主播为了自己人气定制数千一个月的高级外挂,常人很难分辨出来,并且那些外挂本身不存在主播的电脑里,而是通过虚拟专用网络等将游戏数据转发至外挂服务器,然后让主播可以通过手机等轻松查看敌人位置,这可能也是为什么五五开敢说"我卢本伟没有开挂"的原因吧。非传统意义反作弊
那么外挂真的就没有办法了吗?并不是,厂商实际上有二大杀敌神器,让我来给大家介绍一下:
硬件封禁
开挂的成本很大程度上决定了一名玩家是否开挂——这也是为啥《穿越火线》的挂就基本没办法治理(尽管腾讯机智的通过"投票踢人""XX将您请出了房间"来解决付费玩家不爽的问题),毕竟《绝地求生》还要成本不是(虽然并不是98,详细的产业链如果读者有兴趣我们可以那天详细聊聊),如果一名作弊者面临者几千的电脑不能玩这个游戏/被网管打一顿扭送公安局的风险,那么他开挂的可能性也就大大降低啦。
实名验证(中国特色)
现在每个人都用支付宝或微信注册了自己的网络实名信息,这也是一些游戏反作弊采用的终极办法——完美世界的国服CS就要求芝麻认证才能免费游玩,这个方法可以极大的提高作弊成本(而且买卖个人实名信息非法),并能作为安全措施有效的减少被盗现象(也因此增加了开挂的成本),并能减少代练等行为,毕竟不太可能借别人自己支付宝微信不是。
延伸:为啥大多数厂商不采用此方法
那么为啥大多数厂商不愿意用这些非传统方法呢?原因多种多样,不愿硬件锁和不愿实名认证的首要原因都是因为这样的举动会减少玩家数量,担心网吧监管不力封禁设备后玩家转投别的游戏,担心严格的实名制会减少某些未成年玩家数量,担心会让某些玩家担心自己隐私等等等等,总之目前来说上述方法并不是主流,毕竟它们要求游戏开发商牺牲自己的利益来达成一个宏伟的目标,虽然如果作弊现象真的非常猖狂且游戏仍然火爆的不行(比如《绝地求生》)他们也不会不考虑这些方法——不过往往当作最后手段。结语
上文就是对反作弊系统和外挂之间相爱相杀的大致介绍了,因为没有一家反作弊系统会傻到公开自己到底怎么查杀外挂的,所以说笔者这里也不能详细的介绍幕后的原理,也请各位见谅,而最行之有效的减少(并非杜绝)反作弊的方法是"增加开挂成本",不论是要求玩家开启二次验证减少用于开挂的被盗号,还是用时间成本来加大开挂成本(比如《守望先锋》必须25级才能游玩竞技),甚至一个游戏多个反作弊系统,只要是对游戏行之有效的方法我们都应该欢迎厂商的努力,但社会对作弊的认知及抵制也是很重要的——只有当我们像韩国等国学习,用法律而非道德来约束玩家,用切实的目标来让电子竞技成为真正被认可的东西的那一天,我们才有可能大幅度减少外挂玩家。
另外,除了游戏厂商的不懈努力,作为普通玩家的我们应该在这场"诛仙"战争中做什么呢?当然首先自己不要去尝试外挂,不要让他们把你变成和他们一样的人,及时、详细的描述疑似作弊玩家,有条件的玩家可以保存录象作为证据发送给官方——短时间内这场外挂与反外挂之间,游戏厂商与作弊者之间,我们与"神仙"的战争都不会结束,我们也非常需要你的帮助来打赢每一场战斗。