游戏 正文页 有图无图

游知有味:从游戏的反外挂内在机制 谈为何游戏外挂无法根治

01月19日 17:28新浪游戏

  在PC端的多人游戏中,外挂问题一直是严重破坏游戏体验的顽疾。特别是在《绝地求生》这款多人对战游戏火起来之后,关于游戏外挂问题的讨论更是几乎成为了玩家们的“日常”。对于游戏的反外挂措施,在之前我们也看到了开发商蓝洞也使用了专业的第三方反外挂软件Battleye、玩家举报等多种监控措施。但抛除其他因素不说,单从这些技术措施上讲,究竟能否根治游戏的外挂问题呢?

  很可惜的是,答案是否定的。

  至于其中的原因,首先我们需要了解的是目前游戏反外挂的主要技术措施以及背后的内在逻辑。在明白了这些之后,对于这个问题的答案也就迎刃而解了。

反外挂的主要三种技术方式:

  1、特征检测(Signature detection):检测游戏运行时,内存中数据运行的某种模式,然后与数据库资料进行核对

  2、启发式分析(Heuristic analysis):对玩家的行为和数据分析(比如,一名普通玩家在游戏中突然有10杀1死,并且都是爆头击杀的异常表现,这位玩家可能就被关注)

  3、玩家举报(User reports)

具体解释

  1、特征检测

  这项技术是目前大量多人游戏在反外挂中采取的首要措施(如《绝地求生》的主要反作弊软件Battleye就是以这种技术为主)。然而也就是这种技术的内在特点,决定了游戏外挂是无法根治的。

  其工作原理与杀毒软件非常类似,这种措施下的反外挂具体过程如下:

  1、如果作弊软件被开发出来

  2、并且开挂者被检测出来

  3、条件允许的话,作弊软件运行的特征码会进入到反外挂软件的数据库中

  4、之后如果相同的作弊软件再次运行,其特征码就会被反外挂软件检测到

  这种流程几乎就和杀毒软件的工作原理类似:电脑病毒首次开始传播,最终被检测到,之后相应病毒的代码被控制住,在经过分析之后进入杀毒软件的数据库,再有这种病毒的特征文件出现的话,杀毒软件就会隔离这些文件。这个过程就如此循环往复。

  但显然,上面的反作弊流程是有“漏洞”的,特别是第三步。就假设一名开挂者被抓并被封禁了,但是如何才能阻止其他人使用同样的作弊软件呢?这里就需要反作弊软件获取作弊软件的特征码(这也就和杀毒工作原理一样)。但是这种信息的获取显然是极为困难的,那些相关文件也并不是就在那里“坐以待毙”。

  仅有的方式之一就是从玩家电脑的内存转储(Memory dump)中获取,但即使是有幸获取了开挂玩家的Memory dump文件,再从这些文件中找出相应的特征码也是极为困难的。这需要相应人员对这些代码有深入的了解。

  同时即使这些特征码被检测到,并进入到反外挂软件的数据库中,但作弊软件的代码修改起来也是非常简单的,可以被做出各种变种软件(如加入垃圾代码或功能修改等等),这就会导致作弊软件的特征码发生改变,从而进一步加剧了反外挂的难度。

  这也就说明反外挂是一场逆势而上的艰苦战斗而且显然是无法根治的。


恐怖的穿墙外挂

  以上提到的获取作弊软件特征码的方式是纯技术角度的,但是还有一个途径是直接从源头获取作弊软件,比如游戏的反外挂团队会直接从一些网站等途径暗中拿到作弊软件,然后分析出这些软件的特征码,就可以直接杜绝这些使用这些软件的开挂者。

  而之前外界关于“《绝地求生大逃杀》外挂制作者公布开源代码”的担忧显然是没有必要的。因为这些代码的公布之后,必然就会进入进入官方的反外挂软件特征码数据库,当然除非你是一名技术高超的程序员或可以自制作私人作弊软件。

  而在这接下来就是我们要讲到的,私人定制的作弊软件(Private cheats):

  如果有玩家可以完全做出100%“原创的”作弊软件(全部的代码文件都是自己做出来的),而这种作弊,就是反外挂软件仅通过特征检测更加难以检测出来的。

  2、启发式分析(Heuristic analysis)

  这种反外挂技术措施不仅是可以作为一种独立的反作弊工具,还可以与上面提到的特征检测相互配合。

  其的内在算法有些是非常复杂的,但整体的概念框架非常简单,也就是一种基于玩家在游戏中行为和数据的分析方法。假设你是一名水平一般的玩家,你的游戏经历基本可以确定你的游戏水平(或段位)。当然,你可能有时会有上佳的表现,这是正常的;你也可以通过不断的训练,慢慢提升自己的水平,这也正常;有时你的表现会很糟糕,这也很正常。而不正常的是,你的突然连续“吃鸡、接连取得极端高的KD值(击杀/死亡比)或超远距离击杀等等。


就算ID正常,像《绝地求生》中这种击杀行为显然要被特殊“照顾”

  以上提到的是非常简单的启发式分析方法,而实际上目前在反外挂中,这种分析方法所追踪的数据、分析的变量以及所运用的模型已经非常复杂。他们有时会追踪玩家的鼠标移动轨迹,检测鼠标宏以及使用的按键等等。而通过追踪玩家如何移动鼠标,这种反外挂分析就可以认定玩家是否在使用自瞄。例如,如果玩家鼠标X轴总是出现程序化的移动距离,这就显然不正常了。


《绝地求生》中的玩家行为数据统计

  但是这种检测显然也是有漏洞的,如果开挂者足够小心,他们就会在游戏故意犯一些错误,来逃避这些分析的检测。

  3、玩家举报

  这种方式是相信不用游侠小编多说,大家都可以在很多多人游戏中看到。这种简单的反外挂措施应用也是多样化的:玩家可以通过击杀回放、录制视频或观看比赛回放等措施举报开挂的玩家,但仅凭玩家的举报,一是无法覆盖全面,二是证据处理繁琐,也是无法根治外挂。


玩家也可以在《绝地求生》中举报其他玩家的不当行为

  显然在分析了以上主要三种对反外挂技术原理的之后,我们可以得到的结论就是:游戏外挂是从技术角度是无法根治的。但游侠小编觉得,大家也不要对这种现象过于悲观:

  一是,目前很多多人游戏的反外挂措施是,以上三种方式并用,如果执行得当,完全可以杜绝绝大部分游戏的开挂现象。育碧旗下的《彩虹六号:围攻》在经过了长期的整治之后,现在的良好的游戏环境就是一个很好的例子;

  二是,以上分析是从技术角度的反外挂,现实中还有很多其他反外挂措施,如实名制注册、Steam的封禁整个账号、追究法律责任等等;

  三是,游戏竞技也和现实生活一样,没有绝对的公平,能在相对公平的环境中竞争其实就可以了。

  注:以上提到的是主要是PC端的多人游戏,主机上的多人游戏可以通过封闭式的游戏运行环境,杜绝作弊软件,但现在也出现了:关于主机上使用键鼠转换器与手柄玩家竞技算不算外挂的争议,这里不再做具体讨论。文章内容主要参考了外站这篇文章,感兴趣的玩家可以直接阅读原文。

更多相关资讯请关注:绝地求生大逃杀专题