友谊的小船说翻就翻!浅析账号封禁的缘由

时间:2016-04-26 00:00 作者:网络 手机订阅 神评论

新闻导语

 作者:成都铁杆兄弟这两天最大的新闻也许就是玩家吐槽sc在2016年4月25日大规模封号事情,为此事也咨询了很多身边的数据帝及程序员,大致内容讲了很多,整理了一下,文中可能含有极个别敏感词汇,望版主发现帮忙修改,内容仅限大家分享,还望手下留情勿再删帖,同时自己和部落里很

 作者:成都铁杆兄弟

这两天最大的新闻也许就是玩家吐槽sc在2016年4月25日大规模封号事情,为此事也咨询了很多身边的数据帝及程序员,大致内容讲了很多,整理了一下,文中可能含有极个别敏感词汇,望版主发现帮忙修改,内容仅限大家分享,还望手下留情勿再**,同时自己和部落里很多朋友也被封号了,倍感无奈!(就像网上论友说的,出来混,迟早有天会还的)

首先我们要知道游戏厂商会在服务器数据库上记录些什么?以coc为例:

1,帐号信息: 充值记录,物品(宝石)消费,账号密码登陆时间,ip地址,mac码等。

2,角色信息: 物品获得记录,物品升级交易记录,战斗交叉数据等。

自从网络游戏诞生以来作弊软件(熟称外挂)就一直是游戏厂商头痛的问题。由于网络游戏服务器端的负荷很重,不能进行太多计算,只能把大量检测外挂的工作放在网络游戏的客户端进行。但是外挂也总是可以进行针对性的修改,使这些检测失效。而且从某种意义上说,外挂使这些检测失效比游戏检测这些外挂更容易。从目前的情况来看,在这场较量中似乎也是外挂占了上风。在这种情况下游戏厂商不得不使用封号的办法阻止玩家作弊。

首先介绍一下游戏厂商检测的基本原理。一个网络游戏客户端在运行时,从本质上来说是一个从服务器接收数据,网络游戏客户端一般会根据这些数据,加上玩家鼠标键盘触摸的输入,计算出向服务器发送的特定数据,并记录这些数据发送给服务器的过程。同时记录下一个客户端从服务器接收到的数据、玩家鼠标键盘触发的输入,以及这些数据在客户端上被处理的时间,就能计算出这个客户端应向服务器发送的数据。在用户没有作弊的情况下,即使在不同的客户端重新计算,也仍然能得到相同的结果。quake、星际争霸、cs等游戏的录像功能使用的就是本原理。因此我们只要比较两个客户端计算的结果,如果不相同,就能知道其中有客户端作弊了。

由于被检验的客户端和检验它的客户端都有可能作弊,例如检验它的客户端有可能谎报被检验客户端作弊,也可能谎报被检验客户端没作弊,因此两端的作弊都必须防止。 一个网络游戏客户端连接服务器时,同时也连接另外两个用于对它进行验证的游戏客户端。在服务器传送给客户端的数据中含有从服务器上发出的时间。客户端把它从服务器上接收到的数据D1、该客户端上鼠标键盘的数据D2,以及这些数据在客户端上被处理的时间D3、D4传送给两个用于验证的游戏客户端。为保证这些数据不被修改,在传送给验证客户端前,D1、D2、D3、D4使用RSA算法加密。验证客户端根据D1、D2、D3、D4计算出被验证客户端应向服务器发送的数据D5和D5的CRC校验D6,把D6传送给服务器。为防止被验证客户端在把D1传送给验证客户端前修改D1的数据,验证客户端也要把D1的CRC校验D7传送给服务器。服务器计算被验证客户端发送给它的的数据D8的CRC校验D9,以及D1的CRC校验D10。比较D9、D6、D10、D7,如果不相同,就可以知道有客户端作弊了。

下面来看看上面的情况游戏厂商在各种情况下是如何检测出哪个客户端在作弊的。

假设被验证客户端在把D1传送给验证客户端前修改D1,服务器只需比较D10、D7就能知道被验证客户端是否修改了D1。

假设验证客户端谎报D1被修改,在验证客户端向服务器报告此问题时,服务器将要求验证客户端把D1传送给服务器。由于D1使用RSA算法加密,验证客户端根本无法修改它,因此验证客户端是无法谎报D1被修改的。对于验证客户端谎报D2、D3、D4被修改的情况也与此类似。

假设被验证客户端使用加速外挂,由于D1中含有服务器发送它的时间,这个时间减D3或D4后的值D11应该是一个恒定值。如果这个值变化超过一定范围,例如两秒,就可以知道被验证客户端作弊了。

假设被验证客户端使用修改封包、内存、脱机等外挂,D9、D6必定不相同,所以只需比较D9、D6就能知道有客户端作弊。

在发现有客户端作弊后,服务器将要求验证客户端把D1、D2、D3、D4发送给服务器,由服务器计算被验证客户端应向服务器发送的数据D13。比较D8、D13,如果不相同,就能知道是被验证客户端作弊。比较D5、D13,如果不相同,就能知道是验证客户端作弊。

假设被验证客户端为了逃避验证,不把验证数据发送给验证客户端。对于这种情况,如果两个验证客户端在一段时间内都没有收到验证数据,服务器可以断开被验证客户端的连接。

假如被验证客户端因为验证客户端下线等原因和验证客户端断开了连接怎么办?只要另一个验证客户端还能收到验证数据,就不会有什么影响。如果网络带宽允许,甚至可以考虑连接三个验证客户端。这样即使有两个验证客户端谎报收不到数据,仍然不会对被验证客户端产生影响。在验证客户端和被验证客户端连接断开的情况下,我们需要让被验证客户端重新连接一个验证客户端。

应该如何重新连接一个验证客户端呢?对此需要每过一定时间,例如10秒,保存一次被验证客户端的状态。在验证客户端和被验证客户端连接断开时,被验证客户端连接一台新的验证客户端,把此状态传送给新的验证客户端。新的验证客户端根据此状态,再加上被验证客户端传送给它的D1、D2、D3、D4就能继续计算D5,从而继续对被验证客户端进行验证。如果被验证客户端和两个验证客户端的连接都中断了,我们就需要中断服务器和验证客户端的连接。对于服务器计算D13的情况也是一样,只要根据被验证客户端的状态,再加上D1.D2.D3、D4就能计算出D13。

假如验证客户端总是不报告被验证客户端作弊,只要另一个验证客户端工作正常就不会有影响。另外可以让一些客户端故意传送给它错误的数据,如果它没有报告作弊,就可判断出此验证客户端在作弊。

假如被验证客户端故意传送给验证客户端无法用RSA算法解密的数据,或者验证客户端故意报告被验证客户端传送给它无法用RSA算法解密的数据怎么办?服务器无法区分这两种情况,所以只能作为被验证客户端和验证客户端连接中断来处理。

再来看一种情况。假设外挂通过某种方法让使用外挂的客户端互相联系,并且联合作弊怎么办?例如,一个使用了外挂的被验证客户端连接了两个验证客户端,其中一个验证客户端也使用了外挂,另一个没有。被验证客户端强行中断与没有使用外挂的验证客户端的连接,而另一个使用了外挂的验证客户端却又不向服务器报告被验证客户端的作弊行为。对此我们可以每过一小段时间,例如30秒,就要求被验证客户端改变它的两个验证客户端。这个周期越短越好。在连接新的验证客户端后,除了要求新的验证客户端验证当前被验证客户端和服务器之间的通讯外,还要求验证之前30秒的通讯。只要这时的两个验证客户端没有作弊,被验证客户端之前30秒的作弊行为就能被检测出来。

游戏厂商可以检测所有修改客户端网络输入输出数据的外挂,例如加速、修改封包、修改内存等。我们常说的coc黑科技,如果没有源代码泄露的情况下,此外挂要输入和输出和原游戏完全相同的数据远比厂家自己还难。如果这样,外挂作者们不如写游戏赚钱了,而且游戏每做一次小小的改动,外挂都得改得吐血。

很多朋友也许会发出疑问,游戏检测作弊会不会出现误封和漏封现象,回答是肯定的“有此现象”,程序不是万能的,他们只是按照命令行事,举个简单的例子,一般的外挂作者都会绕过官方的检测,同时,这些外挂也会通过加壳等手段伪装自己,说实话,其实游戏的检测机制可以很容易检测一个玩家的日常行为,通过对行为的分析也能很好的判定作弊与否,但目前这种技术尚不成熟,很容易造成大家所说的误封漏封现象,这就是为什么sc推出大规模封号初期既警告你我的同时也限定了封号时间,在这期间,游戏厂商会进一步提高改进核实比对玩家作弊行为(比如广告刷屏卖宝石等),但无论大家如何申诉询问原因或者解封事宜,得到的答案肯定是一样的(也许会承认误封,但仍然不会在时效内解封),这就是防止在游戏反外挂检测系统不是很完善的情况下如果一旦实行永久封号,会出现诸多问题。这个不多说,其实这就是官方技术与外挂作者的一场技术较量,你更新我也更新,你有张良计我有过墙梯。

所以很多时候被封号,有时候并不是发现了你当时正在使用了脚本或外挂,而是确信你曾经使用过不正当渠道得来的插件和作弊行为,并让官方在后台数据库搜索匹配条件找到了一些不匹配的数据而已。

说了那么多,还是那句话,在利益面前,其实良知往往才是输家。

也许你爱

面对一款极度耗费时间和精力,却升级缓慢的游戏,玩家很少有不抱怨的,这种现象成为了玩家使用外挂的一个有利借口。所以,玩家爱上了外挂,不仅是外挂可以减少冗长的升级,更是让他们在游戏的世界所向披靡的强力武器,何乐而不为呢?退一万步来讲,外挂的环境也造就了不少玩家的随波逐流。众多短暂的利益面前,玩家必然会爱上外挂。

也许你恨

有这样一批玩家,坚持纯洁的网游世界,在外挂横行的年代却坚持自我。他们痛恨外挂给他们带来的变态伤害,他们辛苦练级,花了一两年达到的高度,外挂者却只需要短短的时间就能追上。PK场上,本以为可以忽略掉等级的限制,来把真枪实弹对抗,享受PK的快感,却被外挂者瞬间秒杀,种种以小抗衡的现象,怎能让他们不恨?到了最后,要么愤愤离开,要么也无奈的加入外挂行列,已求达到在这个世界的平衡性。

错误同真理的关系,就像睡梦同清醒的关系一样。一个人从错误中醒来,就会以新的力量走向真理。—— 歌德

相关阅读:

部落冲突

游戏类型:策略游戏

适用平台:ios/Android

游戏厂商:Supercell

专区编辑:Carl、煎饼

»手游网COC论坛

扫描或点击下载

《最强攻略》专为手机游戏玩家量身打造的一款攻略应用。少走弯路,决胜千里!

最强攻略出品
×