【声明】本站不运营或出版任何游戏产品,仅为各种经典单机游戏爱好者提供交流场所,为游戏的联网功能提供免费辅助服务
流星 罗马 帝国 征服者 魔兽 星际 红警 突袭 灌水 直播频道 下载平台 会员 互币

互动游戏对战平台官网

 找回密码
 注册互动平台帐号

QQ登录

只需一步,快速开始

刷抖音,看视频,还能赚现金特玩游戏网文字广告位招商广告联系QQ6199940
查看: 887|回复: 3
打印 上一主题 下一主题

[技术心得] 外.W.G.挂绝版封杀方案 求精

外.W.G.挂绝版封杀方案 求精 http://hdbbs.fxt365.com/thread-4421-1-1.html
【点击复制/分享】

58

主题

3

好友

2528

积分

论坛等级: 中士

Rank: 6Rank: 6

UID
10887
帖子
607
互币
1658
平台军衔
中将
登录次数
3413 次
平台在线
279天20时
大厅马甲
跳转到指定楼层
楼主
发表于 2012-7-16 19:52:03 |只看该作者 |倒序浏览
自从网络游戏诞生以来外.W.G.挂就一直是网络游戏厂商头痛的问题。由于网络游戏服务器端的负荷很重,不能进行太多计算,只能把大量检测外.W.G.挂的工作放在网络游戏的客户端进行。但是外.W.G.挂也总是可以进行针对性的修改,使这些检测失效。而且从某种意义上说,外.W.G.挂使这些检测失效比游戏检测这些外.W.G.挂更容易。从目前的情况来看,在这场较量中似乎也是外.W.G.挂占了上风。在这种情况下游戏厂商不得不使用封号的办法阻止玩家作弊,但是这又会造成玩家流失。有没有一种能有很好的反外.W.G.挂效果,而外.W.G.挂又无法使这些检测失效的反外.W.G.挂方法方案?这就是本方案所能做到的。

    首先介绍一下本方案的基本原理。一个网络游戏客户端在运行时,从本质上说是一个从服务器接收数据,网络游戏客户端根据这些数据,加上用户鼠标键盘的输入,计算出向服务器发送的数据,并把这些数据发送给服务器的过程。记录下一个客户端从服务器接收到的数据、用户鼠标键盘的输入,以及这些数据在客户端上被处理的时间,就能计算出这个客户端应向服务器发送的数据。在用户没有作弊的情况下,即使在不同的客户端重新计算,也仍然能得到相同的结果。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被修改的情况也与此类似。

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

    假设被验证客户端使用修改封包、内存、脱机等外.W.G.挂,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算法解密的数据怎么办?服务器无法区分这两种情况,所以只能作为被验证客户端和验证客户端连接中断来处理。

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

    本方案可以检测所有修改客户端网络输入输出数据的外.W.G.挂,例如加速、修改封包、修改内存等。也不可能做出脱机外.W.G.挂。在没有源代码的情况下,脱机外.W.G.挂要输入和输出和原游戏完全相同的数据远比厂家自己还难。如果这样,外.W.G.挂作者们不如写游戏赚钱了。目前国内外.W.G.挂这么多,跟这些外.W.G.挂作者无法通过正常的软件获得收入也有关系。而且游戏每做一次小小的改动,外.W.G.挂都得改得吐血。

    本方案对于不修改客户端对外输入输出流的外.W.G.挂是无法检测。什么情况外.W.G.挂不会修改客户端网络输入输出数据?有两种情况,一种是使用程序模拟用户的鼠标键盘输入,另一种是修改显示。对于模拟用户的鼠标键盘输入的外.W.G.挂,我们可以用网页上常用的验证码的方式来对付。像网页上那样的验证码,人眼可以很容易辨认出其中的数字,但用软件却很难辨认出,因此外.W.G.挂也就无法工作。况且模拟键盘鼠标的外.W.G.挂对游戏的影响比加速、修改封包、修改内存、脱机等要小得多,因此被一些人称为绿色外.W.G.挂。对于修改显示,传奇外.W.G.挂显示人物血条的功能后来被厂商自己加入到游戏中。而在魔兽世界中显示血条的功能则是官方认可的插件,可见厂家对这种外.W.G.挂的认可。把墙体变成透明的一些程序,如果游戏中没有阻碍视线的墙体就没有用处。在雷神之锤(QUAKE)或反恐精英(CS)中,把墙体变透明后,就能看见墙后面的人,或者血和甲。这是因为在客户端上实际有这些数据,只是在正常情况下游戏不在屏幕上显示出来。对此,我们可以让服务器不把这些在正常情况下玩家看不到的东西的数据传送给客户端。

    由于本方案是即时的,所以在检测到客户端作弊后可以立即断开该客户端的连接。这要比事后封号更容易让用户接受。由于验证客户端需要把D1、D2、D3、D4传送给被验证客户端,所以每增加一个验证客户端,被验证客户端所需的网络带宽就需要增加大约0.5倍。但是一个不使用本方案的网络游戏实际所需的网络带宽是很少的,通常在每秒1K字节左右,所以即使被验证客户端连接两个验证客户端,所需的网络带宽也只有大约2K。而且一些对游戏没有影响的数据,例如玩家在游戏中的聊天,或者服务器发送的广告等,不需要发送给验证客户端,因此所需的带宽还能更少。

    在本方案中已经假设了很多种外.W.G.挂以及它们的抵御方法。如果您认为还有本方案中无法抵御的外.W.G.挂,欢迎假设出这种外.W.G.挂对本方案进行虚拟攻击。您可以给我邮件或者到游戏玩家论坛发表您的方案。我将改进我的方案,以抵御您的攻击(如果我能做到的话)。如果对本方案有任何问题可以给我邮件或在论坛上提出,我将在我的主页上给您解答。
发帖请遵守法律,遵守论坛规则,文明用语。请理性发言,珍惜自己的帐号!
手机端二维码
白衣青丝绕星魂
红袖碧血阎罗痕
西风暮晚留侠客
斩断红尘亦归真

微信扫一扫 品牌产品5折随便挑

15

主题

1

好友

1765

积分

论坛等级: 下士

Rank: 4

UID
12020
帖子
282
互币
1325
平台军衔
中尉
登录次数
609 次
平台在线
42天2时
大厅马甲
沙发
发表于 2012-7-16 19:52:54 |只看该作者
好长  可以浓缩一个精简版吗
回复

使用道具 举报

亲,当您能看到这句话时,说明您屏蔽了论坛展示的广告(┬_┬),维持平台运营需要高昂的带宽费用,我们的生存需要您的支持,您懂的!

58

主题

3

好友

2528

积分

论坛等级: 中士

Rank: 6Rank: 6

UID
10887
帖子
607
互币
1658
平台军衔
中将
登录次数
3413 次
平台在线
279天20时
大厅马甲
板凳
发表于 2012-7-16 19:56:20 |只看该作者 |楼主
坐在沙发上说:  这个其实不是我写的  是变.速齿轮的编辑者的东西
[发帖际遇]: 衰,真衰,大漠丶西风孤雁 发完贴后掉进茅坑,买套新衣服花掉了 4 互币. 幸运榜 / 衰神榜
白衣青丝绕星魂
红袖碧血阎罗痕
西风暮晚留侠客
斩断红尘亦归真

回复

使用道具 举报

亲,当您能看到这句话时,说明您屏蔽了论坛展示的广告(┬_┬),维持平台运营需要高昂的带宽费用,我们的生存需要您的支持,您懂的!

58

主题

3

好友

2528

积分

论坛等级: 中士

Rank: 6Rank: 6

UID
10887
帖子
607
互币
1658
平台军衔
中将
登录次数
3413 次
平台在线
279天20时
大厅马甲
地板
发表于 2012-7-21 08:28:40 |只看该作者 |楼主
这个希望对孤总有用   为了反作弊   我们来顶起
[发帖际遇]: 大漠丶西风孤雁 在论坛瞎逛遇见 肥双MM,顺手从她那偷了 5 互币. 幸运榜 / 衰神榜
白衣青丝绕星魂
红袖碧血阎罗痕
西风暮晚留侠客
斩断红尘亦归真
回复

使用道具 举报

亲,当您能看到这句话时,说明您屏蔽了论坛展示的广告(┬_┬),维持平台运营需要高昂的带宽费用,我们的生存需要您的支持,您懂的!

小黑屋|手机版|使用帮助|VIP 办理|免责声明|广告合作|赞助我们|平台官方QQ总群:8820761|粤ICP备18006390号-1
Copyright © 2004 - 2024 互动游戏对战平台 HD.Fxt365.Com  版权所有
互动对战平台目前已通过金山安全中心、360安全中心、QQ电脑管家、百度杀毒等多家杀软的安全认证。
在腾讯软件管家、百度软件、各大软件下载网站中可直接下载安装。
绿色游戏,公平竞技;文明聊天,和谐交流。游戏请勿作弊,切勿沉迷!
抵制不良游戏 拒绝盗版游戏 注意自我保护 谨防受骗上当。 合适游戏益脑 沉迷游戏伤身 合理安排时间 享受健康生活。
用户言论纯属发表者个人意见,与本站立场无关。发表者完全独立承担其发表内容导致的一切法律责任。发表内容请遵守国家法律。
【特别声明】本站不运营或出版任何游戏产品,仅为各种经典单机游戏爱好者提供交流场所,为游戏的联网功能提供免费辅助服务。
申请增加新游戏支持,请到 事务区发帖。
互动游戏对战平台
官方公众号
互动游戏对战平台官方公众号
微信扫一扫
关注公众号
[点此进行举报投诉]
投诉举报邮箱
admin@fxt365.com
Discuz! X3.2  技术支持: Comsenz Inc.      GMT+8, 2024-5-9 20:20, Processed in 0.130383 second(s), 28 queries , Gzip On.
回顶部