欢迎光临散文网 会员登陆 & 注册

无尽之战?漫谈FPS游戏反作弊系统

2017-11-15 01:34 作者:RoyZ_  | 我要投稿

前言

杜绝?别开玩笑了,什么都有挂的

——一名普通的FPS玩家


众所周知,FPS游戏自从诞生以来,就有无数人为之疯狂,但是,外挂也跟着让无数玩家和开发者们为之烦恼,今天我就来谈一谈FPS中那些我接触过反作弊系统。

PunkBuster“朋克克星”

及其频繁的客户端与服务器交互使其用户友好性极低

PunkBuster Logo

Even Balance旗下的PunkBuster“朋克克星”(以下简称PB),其开发者也是个玩家,这老哥有一天被外挂气的半死,然后砸钱成立的Even Balance公司并开发出了PB反作弊系统,PunkBuster的第一个测试版本发布于2000年9月21日,应用在第一人称射击游戏半条命上,但第一个正式整合并采用PB反作弊系统的游戏是id Software的重返德军总部。

PB几乎把战地1942至战地:硬仗几乎整个战地系列的官方反作弊机制承包了下来,而战地的“老对头”使命召唤系列也是从使命召唤1一直用到5,育碧的汤姆克兰西的彩虹六号3以及维加斯1&2包括幽灵行动:魅影,当年PB的受欢迎程度可见一斑。

包含为PnkBstrA、PnkBstrB两个服务,三个文件:PnkBstrA.exe(C:\WINDOWS\system32)、PnkBstrB.exe(C:\WINDOWS\system32)、PnkBstrK.sys(C:\WINDOWS\system32\drivers),同时这三个文件也存在于游戏目录下的PB文件夹中,其中真正起反作弊作用的是PnkBstrB,但PnkBstrB依赖和挂钩于于游戏,也就是说,当游戏未启动时,PnkBstrB服务不会启动,而游戏一旦启动,PnkBstrB也随之启动。

我先前说过,PB饱受各大游戏厂商青睐,但是最近几年却销声匿迹,很大一部分原因是因为太多用户抱怨PB对于网络的要求之高,以至于PB与服务器稍有连接问题就会将玩家踢出服务器。由于在战地3使用中,这种故障的频发导致PB一片骂名,在战地4中EA引进了FairFight“公平对战”反作弊系统,和PB共同运行,最后在战地1中,PB彻底被FairFight“公平对战”取代。

著名的战地No Packet Flow导致PB踢出问题

FairFight“公平对战”

战地可能是最好做挂的游戏了,尤其是只用了FF的战地1

——落叶双飞hh(TMDHack制作者)

FairFight® Logo

由GameBlocks LLC公司开发的FairFight“公平对战”(以下简称FF),FF是一款完全部署于服务器端的反作弊机制,FairFight使用GameBlocks专有的GameChanger规则引擎和数据库结构来评估玩家的游戏行为。玩家的行为是针对多个标记进行测试,以确定是否发生作弊行为。FairFight使用客观的服务器端报告工具交叉检查这些指标,并在两种方法与作弊相关时采取行动。FairFight给出了不同的处罚。它有一个完整的惩罚制度。首先,如果它检测到你作弊,它可以给你一个警告。它也可以给予一个限制。最后,它会给予一个封禁/暂时性封禁。

FairFight通过分析玩家统计和服务器端作弊检测来检测外挂。它分析你的统计数据,在不同的比赛中进行不同的动态分析,如果统计数据显示出有高度作弊嫌疑,它会给你一个警告/限制/封禁。FairFight也使用服务器端的作弊检测,如前所述,它检测可疑的移动,和事件。例如,如果一个武器不可能从200码范围内击中一个玩家,如果你这样做了,那么它会分析这些信息并给予一个警告/限制/封禁。

看起来很美好:

这就是EA被PB吓怕了之后,完全使用的FF的战地1,非常恐怖对吧?

再加上战地1的私人租的服务器管理权限相比战地4削弱了太多,在战地4就算PB和FF都不给力,CNUB(中国战地联Ban)也依旧在保护玩家的游戏的体验(不过现在需要RIP一下CNUB,已经无人管理了貌似),纯FF的游戏环境真的是极差。

为什么导致了FF如此低下的能力?

首先,FF全程服务器端,没有了类似PB那种大量服务器与客户端交换导致玩家连接失败被踢出,完全通过统计数据监察玩家是否作弊看起来很美好,但是,你想过没有,放弃本地监察,你这难道不是明摆着给人去改内存?

部分制作战地1外挂时需要用到的内存地址偏移

这张图是制作战地1外挂时需要用到的内存地址偏移,可以注意到红框处就是FF请求从本地发送屏幕截图的内存地址偏移,外挂制作者只需轻松做手脚即可将FF的大部分功能无效化。

VAC“维尔福反作弊系统”

一片空地上的一扇门

——国外玩家评VAC

Valve Anti-Cheat


VAC“维尔福反作弊系统”(以下简称VAC)是一款由维尔福公司开发的反作弊解决方案,同时也是Steam游戏开发平台的元件之一,首次出现在2002年的反恐精英1.6版中。在2006年11月的一周之中,VAC侦测到了超过一万个作弊企图。在2012年,据统计有超过一百五十万个Steam帐户被VAC停权禁止。到了2013年,VAC已被用在Steam平台的超过60款游戏之中。

说起VAC,就不得不说起CSGO。

首先CSGO的反作弊一定会你们骂到爆炸,所以你们先冷静一下,我们来以CSGO为例分析一下VAC到底靠不靠谱。

(来自腾讯游戏安全实验室的专业分析:http://gslab.qq.com/article-274-1.html http://gslab.qq.com/article-277-1.html)

首先通过采取动态调试,静态分析,hook验证等方式,发现VAC在CS:GO上方案如下:

来自腾讯游戏安全实验室

VAC在CS:GO上目前能感知到的只有简单的特征上报,可能考虑到CS:GO还采取了视频监管和实名认证等安全方案,故没有采取更多的对抗和监控策略,但确实能够看到VAC仍然有不少预埋的检测逻辑,可能会在特定业务场景下,配合动态方案开启。

说句人话:

1. CS:GO游戏通用安全保护强度不高,游戏分析门槛较低,导致了外挂制作成本较低

2. CS:GO-VAC检测强度不高,导致了外挂存活周期较长。

3. CS:GO无前端实时对抗方案,处罚作弊具有延后性。

4. CS:GO人物坐标全局下发,导致游戏会长久的存在FPS通用的透视自瞄等外挂风险

通过腾讯游戏安全实验室的这个专业分析现在你知道制作CSGO外挂难度有多低了吧,VAC到现在都只是采用特征检测策略进行反作弊,你只要好好的调试下CSGO,找关键一下值的地址,写点简单的逻辑,轻轻松松一个外挂就出来了,更有甚者,国外一堆CSGO外挂都是开源的,拿回来自己编译一下加个壳,挂个淘宝分分钟往外卖。

Valve pls fix it!

BattlEye“战眼”

反作弊系统的黄金标准

——BattlEye官方宣传语

BattlEye Logo

BattlEye“战眼”,想必只要玩过彩虹六号:围攻,或者绝地求生:大逃杀的玩家都不会陌生。

BattlEye“战眼”(以下简称BE)由Bastian Suter于2004年10月创建。最初作为战地:越南的第三方反作弊,发布后,迅速获得了第一个认可。2005年初,它被纳入了第一个职业联赛。由于社区的要求,BattlEye随后被移植到战地:1942,并再次被一些联赛使用。接着被广泛用于ARMA(武装突袭)系列中。至今BE已经保护了游戏界11年。

我个人认为他是目前世界上最为强大的ACS之一,那也许你要问了,为什么PUBG的外挂多的成堆呢?别急,听我慢慢道来。

“ADS deployed and ready to go !”彩虹六号:围攻的GSG9干员:Jagear的部署ADS主动防御系统时说的这句你也许不会陌生,作为反作弊界的ADS,完全成熟的主动防护系统成为了BE强有力的反作弊手段。如果说普通反作弊系统是城墙,那么BE就是一辆战车,他坚不可摧,主动追击敌人并予以制裁。

大家应该会注意到BE有个Launcher(启动器),在游戏进程运行之前,BE会先行启动自己的BE服务,并确保游戏运行前的环境足够安全,才会以特殊的方式启动游戏本身进程。

同时,BE使用创新的,复杂的特定启发式/通用检测和作弊分析程序,在用户和内核模式下快速动态和永久地扫描玩家的系统,实现这种启发式扫描和通用扫描相结合的方式使得BE能够有效遏制作弊进程的创建以及文件的存活周期,导致外挂开发者更新外挂周期出奇的高。同时,吸取了PB高强度服务器数据和客户端数据交互,通过高度加密的数据包通过游戏自己的网络连接进行通信,但不像PB服务对防火墙过于敏感,不需要任何额外的端口/防火墙转发,极大优化了反作弊程序对于玩家游戏体验的影响。并且,针对不同的游戏有着不同的针对性方案,例如针对ARMA(武装突袭)脚本检测。

那你可能要问了,BE这么厉害,怎么刚刚我在决赛圈的什么自瞄透视,我在天上看的一清二楚,更有橡胶果实挂让人忍俊不禁:

首先我们都知道彩虹六号:围攻(以下简称R6s)和绝地求生:大逃杀(以下简称PUBG)都是由BE提供反作弊保护,但是R6s的作弊率却要远远小于PUBG,这是为什么呢?

首先玩家基数是一个很重要的原因,其次R6s是由育碧开发的,再BUG育碧在代码的逻辑以及规范肯定是比蓝洞这种垃圾公司好的多,蓝洞的代码很多都是在本地计算完成,甚至没有二次校验,引擎也不是UE4这种“公交车”,所以外挂代码泛用性相对较低。

接着是开挂成本,PUBG作为一款火遍全世界的游戏,制作和销售外挂的暴利可想而知,更有甚者是买挂送号,因为只要作者不及时更新,BE迟早会发现并封禁此类外挂,所以作者可能会提前做出多种特征码的外挂,在BE升级间隙放出另外一种特征码的外挂,而其售价仅为98RMB,开挂成本相当低,而R6s需要168RMB,开挂成本相对高出了很多。

PUBG的一些关键数据的地址

何况,我听说有些PUBG外挂是通过瘫痪BE服务,来实现外挂目的的,因为他们都知道,正面和BE对抗是很快就会被发现并封禁的,只能从系统级的角度来做些什么了。

总结

其实,任何反作弊软件都不是万能的,只要你更新有一点不及时,反作弊系统就会陷入被动,那么这场反作弊之战,真的就是一场无尽的战争了吗?答案是否定的,一个最好的解决方案,就是:完全在服务器运算。使用了此类技术的引擎有:AutoDesk的BigWorld引擎,并被用于著名游戏:坦克世界

坦克世界

但是由于坦克世界在游戏节奏相对于FPS来说较慢,所以非常适合使用纯服务器运算引擎,而FPS对于即时运算要求过大,所以对于服务器运算是个巨大的挑战,游戏运营成本也会非常高。


Once a cheater, always a cheater !

公平竞技,从我做起。

如果有什么错误欢迎在评论区指正,也希望大家在评论区说说自己对这些事的看法,也希望大家不要吝啬自己的硬币和收藏,喜欢的点个关注吧!

2017年11月15日 01:34:14 已输入4419字

无尽之战?漫谈FPS游戏反作弊系统的评论 (共 条)

分享到微博请遵守国家法律