游戏中有哪些作弊方法?

阅读 331
收藏 11
2017-08-17
原文链接:mp.weixin.qq.com

对于游戏开发者来说,外挂是深通恶绝的,它一方面破坏了游戏的公平性,造成大量玩家流失,另一反面又加快了游戏节奏和资源产出,让开发商利益受损。

对于这种让玩家和开发商都不讨好的行为,一定要坚决打击。但现实情况是,外挂很难彻底杜绝,特别是你的游戏火爆的时候,会有一大批外挂盯着你的游戏漏洞,让你防不胜防,你唯一能做的只能去不断的完善,做好安全预防和检测,和它做攻防斗争,或者从设计之初,就做好主要安全构筑,提升游戏的防外挂能力。

下面我们介绍几种常见的外挂形式,给一些简单的建议和方案,方便大家一起探讨。

1
常见的外挂分类
协议破解

 协议破解是一种常见的方式,主要是针对通信内容进行破解,对于采用hash加密的协议来说,会被彩虹表暴力破解。对于采用对称加密的算法来说,如果密钥被截获或者从文件破解,都会触发这种解密行为。

若是采用非对称加密,对服务器的性能损耗太严重了,不值得,所以好的方式还自定义一种动态密钥,加大被破解的难度。

加速

加快游戏的时间或者帧率,让人物快速移动、快进技能CD等,或者遇到一些操作比较难的关卡,减慢游戏节奏,减低操作难度,从而影响游戏的帧率,加速过关,减速躲避技能等。

对于这种行为,一般是客户端和服务器做好心跳检测,检查客户端时间,防止篡改,另一方面做好客户端输入数据检查,做到验证数据以服务为准。

内存修改

修改内存数据,这个在以战斗逻辑主要客户端计算的游戏中,经常会出现。这类外挂通过分析游戏所使用的内存,找到内存中的变量去分析猜测变量是代表的什么含义。然后再去修改这个值,令玩家控制的角色战斗力爆棚,比如技能CD直接修改为0,或者攻击值修改变大等。

这个一方面客户端要对内存数据做好加密,另一方面服务器得做好验证,不能以客户端为准,具体形式后面再讲。

重发、篡改

对于有些协议加密比较严谨的项目,协议数据破解会很难,作弊者破解不了,就重发或者篡改向服务器发的包,比如充值包,或者购买道具包,他们会采用WPE工具截取到发送的包之后,再次重发,如果服务器没有做好唯一认证或者逻辑严格检查,就会被这种重发包给攻击,造成大量道具的产出。 

发放技能这种包也可以被重发,这样可以无限放技能。

模拟点击

这种常见的就是采用按键精灵,对于一些任务系统,或者采集系统,通过按键精灵来录入操作,模拟人手操作,加快收集过程,对于这种的就需要服务器进行分析了,不过影响不是很大,根据影响效果来看是否处理。

逆向解密

这种比较高级了,一般会对没有加壳保护的客户端包进行逆向分析,比如把你的包加入外挂程序重新打包,或者逆向出你的加密函数,把自己的想要发出的数据,回溯到加密函数,执行加密再发送等,对外挂人员的要求比较高,对安全人员的要求也更高,一般就得做加壳加密,资源加密等一系列防护,防止程序被逆向。

fps外挂

fps外挂要被单拎出来,是因为这个被搞的太厉害也比较高端了,其中牵扯到内存修改,坐标定位,以及劫持系统渲染等。不过目前也有工具支持了。

FPS类游戏面临的两大外挂问题:透视和自瞄。这也是多数FPS游戏所遇到的问题,比如守望先锋和穿越火线等。

透视分为方框透视和人物透视,具体的方框透视,我没有仔细研究过,大概也是通过坐标系来定位的,而坐标系的数据也是通过内存数据读取出来的,所以说若是内存数据没有保护好,这个也是会被搞的。而人物透视就是采用劫持系统渲染的逻辑来实现的,简单粗暴。

自瞄是方框透视的附带功能,但是比方框透视更难以检测。因为自瞄从原理上来说仅仅是模拟了鼠标的移动,并没有实际对游戏进行干涉。所以这种方式想要验证,只能通过服务器来分析是否是输入设备的操作来处理了,相对比较困难。

2
带来的问题
服务器误杀

目前多数游戏为了做好用户的操作体验,大部分的运行和渲染逻辑都在客户端,再加上网络延迟的问题,服务器用来验证客户端输入的准确性难道越来越大,做的过于严谨会造成误伤,做的宽松又会被外挂利用,所以业内也采用了各种各样的方式来解决,并没有统一的方案。

我讲一些我们自己的方式,比如会把关键战斗的操作数据保存下来,存入到一个分析库里面,让防作弊的机器用来分析处理。

做好关键资源报警监控,对于出现玩家爆出大量资源产出的时候,做好防范,一旦出现,及时处理和分析。

客户端加密

从上面的作弊方式可以看到,很多作弊方式已经出现在客户端了,所以客户端除了做好协议加密意外,还得对包加壳加密,防止逻辑被反编译,对资源做好加密,防止资源被盗取,以及对内存做好加密和混淆,防止被篡改等安全方式来保证客户端的安全,这也是间接的也是为服务器减轻防作弊的压力,从而提升游戏的整体防作弊能力。

游戏的防作弊是一件不易的事情,要想做到全面的安全提升, 需要做很多细节上延伸和完善,这对研发团队来说也是不小挑战。当然,随着技术的进步,我们也期待出现更智能的检测手段,帮助我们更快更好的定位作弊行为,从而全面提升游戏安全防范。

目前很多一线的大厂基于自己雄厚的研发实力,做出了自己的一套防作弊系统,包含客户端程序的打包加密,以及服务器的防作弊分析等,这对游戏作弊的安全防护有很大帮助,也期望能够尽快开放出来,即便是收费也好,也能方便小团队对这一块的防范。
end

想看更多有趣原创的技术文章,扫描关注更多。

关注个人成长和游戏研发,推动国内游戏社区的成长与进步

每周一或三早上定时更新

评论