[草稿]关于冒险岛封包拦截程序的开发计划

来源:互联网 发布:2016新加坡程序员工资 编辑:程序博客网 时间:2024/05/06 08:54

传说冒险岛游戏中有一种利用网络延时,将特殊道具“偷”出任务地图的方法。相信掌握了此种技术的人都会爱不释手,我也是如此!目前来讲,使用这种方法的操作过程有些繁琐,要切换出游戏利用WINDOWS防火墙实现足够的网络延时(让冒险岛客户端无法访问网络),这通常也伴随这较大的掉线危险(TimeOut),基于以上考虑,我打算开发一个运行在后台的程序,当用户在冒险中按下快捷键时游戏会被暂时阻止访问网络,当用户在游戏中完成“偷”的必要操作后再次按下快捷键时,游戏可以立即恢复对网络的访问,这就是我打算做的东西!

 

关于网游中“偷道具”的原理分析

 

不管是冒险岛还是其他网游,用这种方法“偷道具”都是基于同一个原理,我的个人见解如下:首先可以肯定这种方法与网络延时有关,操作过程是玩家将要带出地图的物品扔在地上,与NPC对话来到出地图前的最后一步,然后切换到桌面启用防火墙阻止冒险岛访问网络,然后切换回游戏点NPC退出地图,紧接着按几下捡取道具,然后迅速切回桌面,禁用防火墙,这样当你切换回游戏的时候你会发现原本仍在地上的不允许被带出地图的道具,已经被你成功带出了地图。

原理分析如下,当你做好一切准备(把想要带出地图的道具仍在地上,与NPC对话到出地图前的最后一步),启用防火墙后,冒险岛就无法与服务器通信了,那么当你完成与NPC的对话后(即系统已经判定玩家需要退出地图时),系统除了关闭对话框还要做两件事情:1.将你持有的指定道具清除,2.与服务器通信,确定下一幅地图的信息,并将你传送过去。正如刚才所说,你已经把系统要收回的道具仍在了地上,结果就是无法“将你持有的指定道具清除”,或是说系统判定你身上并没有要收回的道具,于是它就会去执行第二个操作,试图与服务器通信并把你传送到其他地图。然而,正如上面所说,你已经启用了防火墙,此时此刻游戏会不断地向服务器发送封包,试图与服务器取得联系(当然它是做不到的),也就是说你暂时还无法被传送出这个地图!这样就为后来发生的事情提供了机会,当你按下键盘上的“捡取道具”时,系统会判断你脚下确实有可以捡取的道具(当然那是你事先扔在地上的),那么它就会向服务器发送封包,告诉服务器你要捡取这个东西,并试图从服务器那里得到消息来判断你是否可以将它捡起来(当然它也是做不到的)。这里还需要说明一点:当游戏向服务器发送了一个封包,而它又没有收到来自服务器的反馈,那么系统会判定封包在传输过程中遇到了意外,可能已经丢失,这个时候它会再次发送这个封包直到成功收到服务器的反馈或者超过最大失败次数游戏掉线为止。当然,在你的游戏掉线之前,一切都要等到你关闭防火墙,让游戏恢复与服务器的通信为止,这个时候你的游戏不仅可以收到服务器的响应将你传送到其他地图,还可以得到响应,说你可以捡到你仍在地上的那个道具,至此你便带着你的“违禁品”逃出了任务地图。

由此可见,问题的关键就在于你是否有足够的延时在对话框消失并退出地图那一刻去捡地上的道具,可喜的是利用防火墙技术,我们已经能够将这个延时增大到近乎恐怖的程度(我想要是在打BOSS这种延时应该已经不能用“卡”来形容了吧)!

 

(未完待续)

原创粉丝点击