任何游戏都需要按照一定规则进行才好玩,特别是在竞技类游戏中,一个良好的游戏环境有赖于每一个玩家恪守规则。但也总有少数玩家,TA们惯于破坏规则塑造自己扭曲的强大,并将罪恶的“快感”建立在他人的痛苦之上。
在射击类游戏中,这些人被称为大哥、神仙或者...一个很有腾讯特色的说法——清朝老兵(因为会被封号10年)。面对这些破坏游戏环境的人,大多数厂商都会想尽办法对抗,并且研发了种种不尽相同的反作弊系统,从V社的VAC,再到拳头的Vangard,腾讯端游的ACE等等不一而足。然而,尽管有着这些系统保驾护航,射击游戏的外挂似乎还是很难被根绝,甚至让人生出“道高一尺魔高一丈”的感慨。
不过方妹我听说,咱们家的《暗区突围》在反外挂这块还是颇有心得的,上线这一年多来,虽然玩家数量一直在提升,但反外挂这块可丝毫没马虎,不仅对作弊玩家的封禁及时性、准确性大幅提升,还线下抓捕了不少外挂作者。可以说是公司内反外挂工作的标兵了。这次魔方研究,我就抓了一位为暗区反外挂做出突出贡献的同事好好聊了聊。为什么FPS的外挂会除之不尽?如今的反外挂手段是怎么运转的?反外挂的同事又是怎么把那些“清朝老兵”绳之以法的?这期节目,我们就来解答大家的这些困惑。
第一步,增强免疫
FPS为什么外挂这么多?这其实是个老生常谈的话题。在几乎所有FPS中 ,精准瞄准特定目标并扣下扳机,都是获胜的不二法门。如此朴实无华的设定也意味着,玩家间的“见招拆招”往往被压缩至瞬息之间。
为了让每个玩家都能享受这种紧张又刺激的体验,开发者们自然希望游戏的操作反馈延迟能够尽可能的低。相较于其他不太要求“即时性”的游戏而言,射击游戏的更多运算和判定需要在玩家的本地客户端完成。
这固然解决了延迟的问题,但同时却也为制作外挂提供了可能,诸如:非法读取其它用户的位置信息,这就是透视;强制锁定瞄准特定模型(锁头锁胸),甚至于直接向服务器端发送虚假数据包,让角色一枪一个小朋友,或者直接飞天遁地(伤害挂、飞天挂)等等。
CSGO中的透视挂
了解了这一点,我们就可以开始思考如何处理外挂了。首先,如果将外挂视为入侵身体的“病毒”,那么最简单也是最有效的,自然就是增强自身免疫力了。
首先可以做的,自然是尽量保护游戏数据不被非法读取,在游戏启动时,客户端会先对自己运行的“环境”进行检测,比如客户端是否被篡改,手机是否越狱,是不是处于模拟器环境,是否有可疑的软件在同时运行等等。在检测到异常环境时,游戏可能会无法启动,甚至账号也会被短期封禁。不过这算能是一道最基础的免疫屏障,仅凭启动时的检测来防护是不够完善的。
接下来,便是游戏中的服务器检测,服务器端也会对客户端的数据做一些验算和核实。比如一个玩家用特定子弹打出的伤害是否合理,玩家所处的位置是否合法等等。
举个例子,去年7月暗区刚刚上线时,就曾短暂出现过隔空取物的外挂。随即负责安全策略的同事迭代了服务器验证的流程,在拾取物资时,服务器端会验证先锋与物资的距离,如果过远,则判定为无效。通过外挂隔空取物自然就行不通了。不仅如此,暗区中高价值的物资也得到了更高级别的保护。比如游戏的保险箱中到底有什么东西,只有当玩家摸保险箱后,服务器端才会下发其中的信息,因此所谓的“保险透视挂”如今完全是无法实现的。
可能有玩家们看到这里可能就要提问了,方妹方妹,那为什么不给所有物资,或者所有行为数据都加严密的服务器验算流程呢?这样不就可以彻底摆脱外挂了么?
当然不是啦。正如前面提到的,FPS是为了保证延迟,才将部分的数据计算任务交给了本地客户端,服务器端的验算算是一道保险,如果做得太多太复杂,同样会造成过度延迟的问题。
比如说,关于玩家透视挂,我们其实也可以像保护物资一样,通过服务器验证的方式对其进行一定程度的限制。但基于性能问题,这个课题我们已经研究有小半年之久。
因此,我们还需要其它方式来应对“外挂”的袭扰。想要摆脱病毒的困扰,提高自身免疫力只是一方面,如何对症下药,也是治病的关键。
第二步,对症下药
众所周知,接种疫苗,让抗原刺激机体产生抗体,是抵御病毒最有效的方法。为了处理外挂,同样也需要类似的操作,也就是搜集外挂样本,识别特征,记录在案。
至于如何搜集更多的外挂样本,我们通常划分为主动搜集、玩家举报这两种方式:
主动搜集,说白了就是潜伏卧底各大外挂售卖平台和论坛社区,收集常见的外挂样本。
外挂售卖群
而玩家举报,顾名思义,就是通过玩家的举报去定位一些可能有使用外挂嫌疑的玩家,定位后结合一些技术手段去多维度分析这个玩家到底有没有使用外挂,查实后,还提取对应外挂的特征。我们将这些搜集来的外挂程序特征加入到客户端检测机制中,就可以识别一个用户是否开挂了——大家十分熟悉的腾讯ACE安全系统就是这样工作的。
只要这两套机制运转正常,一个全新的外挂只要活跃了一段时间,就会被扑灭;虽然新外挂还会不断出现,但注定很难掀起太大波澜。
《暗区突围》中玩家举报界面
那么大家可能会好奇,既然如此,为什么封禁的时间有长有短,难道是因为传说中的“充钱保命”?其实并非如此,一些玩家被被放到小黑屋,或者短时封禁(而不是10年),是因为,我们可能发现了一些高危的特征,但并不实锤玩家开挂。例如检测到手机处于越狱状态,以及其它一些阻断外挂检测的情况。
这里额外说一句,其实大家的局内举报是非常有用的。我们会启动一个AI模型来分析被举报玩家的局内录像,来看他的特征是不是像“开了挂”——例如预瞄掩体后玩家,控枪异常等。如果AI认为有开挂嫌疑,则会推给人工进行核实。这个AI模型的准确度随着时间推移变得更高,让发现新外挂的速度变得更快了。
总的来说,腾讯游戏反外挂工作实际上是由一个庞大的中台体系支撑,背后的技术含量相当高。而暗区投入在反外挂的支出,每个月都超过百万,虽然谈不上“杜绝外挂”,但还是可以把外挂的影响控制在最低的范围内。
第三步,根治病灶
除了通过游戏内的技术手段应对外挂,在游戏外,我们同样建立了直接针对外挂使用者和制作者的一些机制。
比如,经过常年的研究,我们发现,约有超过一半的外挂使用者是惯犯,他们会在不同游戏间,开多个账号使用外挂。针对这种情况,我们就有了跨游戏的腾讯游戏信用分系统。如果在别的腾讯游戏中被检测到不当行为,或者因使用外挂被封禁,那么在这一账号登录其它腾讯游戏时,就会被列为重点检测对象,早发现早治疗。
腾讯信用分系统
而对于制售外挂的人,就更不必多言了。只要非法获益金额金额达到立案标准,我们就会将搜集到的场外信息提交警方,直接线下抓捕那些卖外挂的人,并顺藤摸瓜将制作外挂的人一起绳之以法。这样的抓捕行动,在过去一年已经进行了好几次。方妹也在这里敬告大家,制售游戏外挂是真正的违法行为,大家不要铤而走险哦。
辐射系列有一句名台词,叫"War, war never changes."反外挂可能也是这样一场永不改变、永无休止的战争。而我们唯一能做的,无非就是保持斗争,始终尝试为玩家提供更干净更公平的游戏环境。
好了那么这一期的魔方研究就聊到这里吧,如果觉得对大家有启发,不妨在评论区讨论,让我们下期节目再见!