中国手机游戏新闻网

梭哈看牌器原理

时间:2013-08-25 22:20:36来源:zyn栏目:港式五张 阅读:

     我首先声明一下,在最近很多师兄弟问我这个问题,而且价格据说都开的很高。我也只是对他的编写方法做一些介绍,并无破坏别人的游戏之嫌。 梭哈底牌是看不到的,因为只有在最尾服务器才将其他玩家的底牌发送到客户端,所以除了服务端才知之外是不可能看到的,除非写软件的是底智,不过底智的就写不出这个软件了。
  
  所谓的看牌器,其实是很简单的一个原理,他就是获取到对方数据包直接读出来。就可以看到他的底牌了。(这里我只讲下梭哈看牌器,这个方法适合于 茶苑看牌器,金游世界看牌器,凤凰山庄看牌器和456游戏看牌器等,仅仅局限两个人对战,多人对战我还没有想到办法,还请各位师兄探讨我在下面公布了群号码,请师兄不吝赐教)
  
  从师兄弟提出的问题来看,难点就在于获取对方的数据包和数据封包的破解。
  
  这个问题要从2002年说起,在2002年前双方的数据是在对战的双方都有的,那个时候只需要写一个内存读取代码就可以完成这个动作,直接把内存中的数据提取出来还原就可以,那不仅仅是只看到底牌,而且是可以看到对方的5张牌,这样的看牌器基本没有技术含量大家都会写。我就不罗嗦了
  
  在2002年后游戏的写作方法基本全部改为服务器双边请求数据才可以得到包,这个难度就大了,也是很多师兄弟卡壳的地方。为了能直接的说明,我在这里给一个草图相信一看也就明白了,我在这里假设我的ID是ABC,对方的ID是EFG
  
   游戏服务器
  
  ABC 自己建立的服务器 EFG 
  
   EFG
  
  
  如上图,ABC发出请求 EFG同时给自己的服务器和游戏服务器发出请求,获取到各自的数据封包,在本地客户端完成ID欺骗,服务器必然会验证请求,那么由自己建立的服务器来响应,数据包就会完整的欺骗下来了,很多人失败的主要原因就是未能想到必须得自己建立一个服务器,用服务器伪装对方而不是在本地伪装,那因为是同一个IP肯定是验证通过不了的,这样一来本地的EFG就可以到自己的服务器去读对方的包在本地显示,看牌动作就这样完成了。
  
  这样写的好处在什么地方呢?第一这个是永远不可能被服务器封杀,因为双边发送的请求就是正常的请求,除非是自己也看不到自己的底牌了,呵呵那样是不可能的。而且这个就注定是梭哈游戏的死角了,我认为只要是梭哈就有这样缺陷。至少预计到2010年能封杀的可能不是很大。
  
  如何破解数据封包?
  
  而且加密方式在不断改变如何完成升级?这个也是师兄弟问的比较多的一个问题
  
  这个问题实际是很简单解决的,大家总是忽略了一个问题,客户端本身就具有解密功能的,就如黑客破解QQ聊天记录是一样的,直接把聊天记录导入到QQ就可以用QQ读出来了,这个也是一样的道理,直接把数据利用他本地的客户端还原出来就可以了,他读自己的底牌能读出来,就是这个道理的。所以只要他能自己看到自己的底牌数据包是不用去破解的。但是如何去完成呢?
  
  需要把里面的DLL文件导出重新编译一下是一个办法,也可以把数据借用直接返回是一个道理的。
  
  相信说到这里各位师兄也就明白看牌器该如何编写了,虽然说起来比较简单,但是去完成主要技术还是在自己建立服务器端的编写,大家只要注意他的验证方式就可以了的,不用去获取和拦截数据包,重点是欺骗下来,这样才不至于被封!游戏服务器根本无法察觉的。

  如何编写凤凰山庄看牌器呢?我们首先分析一下凤凰山庄的数据包:
  
  协议分析 加密解密 通讯框架 在前面我们就已经 都搞定了。如何开始着手呢?
  
  凤凰使用 id+pass+socketid 验证的 id是4字节的15进制数 pass就是登录密码 socketid是每个socket链接的句柄 通过研究发现它是没有响应包的 所有的数据都是game server直接发过来的
  
  基本到这里凤凰的整体的数据基本明朗化了
  
  kpq server和kpq client组建一个CS架构的通讯模式的测试程序,我们开始下一步
  
  真正的漏洞在房间聊天的这个包,这个包包含了对方几乎所有的信息,这个是很多师兄没有注意到的地方,这个包是通过P2P有的是通过中转的,金游世界的看牌器就需要分析这个P2P包,
  
  通过封包获取我们得到了我们需要的所有数据了,但是师兄还有一个疑问,如何分析这个包呢?我获取到的包根本就没有什么价值?是为什么?
  
  原因是这样的,游戏在编写的时候,命令是有先后的,比如你先发送 开始命令 是一个请求命令,对方点开始只是一个应答,这个是非常关键的,如果是对方先点开始,那么你再点开始,获取的包是完全不一样的。好了注意到这点我们开始下一步。
  
  对了,获取数据包一定要用WK小组的,把客户端编译后,直接插入到信息内核,用SWEKHH9.0或者9.4把包离出来,其他的工具获取到的包是没有通过客户端的,无法完成欺骗模拟,这个也很关键。打个比方我是1你是2
  你给我发一个包1
  那么你获取的就是1但是这个1在我的客户端是不认可的 需要你的1通过我的客户端认可,而且还原,我再请求数据,游戏服务器才认可
  
  基本说到这里大家就应该知道怎么完成 梭哈看牌器的编写了,但是多人的目前还无法突破,
因为他主要是对站房间,所以在技术上是完全没有难度了的。
  
  第一,开始游戏,找一个朋友到房间测试,抓取数据包。在房间要助手给你打个数字
  好了,包出来了。一共返回了四行,我们把包记录下来保存等下分析,要你的助手先点开始(助手和你先点开始两次的数据是不同的,原因我们在技巧二进行了说明)你现在点开始,发出发牌请求。牌下来了,把自己的牌和助手的牌进行记录把包保存好,直到28张牌全部出现,而且每个包和得到的牌必须一一做好记号不能乱,每次点开始必须是助手先点也就是说你必须放弃,每次点开始前助手在房间给你打一个不同的数字过来,这个包也必须记录好,不能乱一乱以后的就全部完成不了了。
  
  反过来,你给助手做同样的操作,把数据包做好记号一一对应的保留------必须是28张每张都出现才可以。因为数据包等下方便分析。
  
  我们现在把所有抓到的包来一一的分析一下,助手给你打字的包在你点开始后获取,通过分析得到了ID和IP信息和服务器验证的数据,注意,必须是在自己客户端验证后获取,因为没有通过自己游戏客户端认证的是无法完成以后的欺骗的而且信息不完全。所用到的工具一定要用WK小组的,把客户端编译后,直接插入到信息内核,用SWEKHH9.0或者9.4其他的版本我们测试,数据不完全。如果你是高手,也可以把游戏客户端反汇编后,在客户端内获取也可以,但是那工作量太大了。
  
  第二,一切具备后我们开始着手建立自己的服务器,把上面获取到的包一一剥离出来。开始编写服务器端和看牌器客户端,把包一定要分离为单个包直接调用。
  
  看牌器嵌入游戏客户端这个就不多介绍了,开始对战后读去对方的ID上传到服务器端,是自己的,这个要注意。服务器端通过刚才的包的分析迅速完成ID和IP等数据的响应,并且给服务器发出欺骗请求,服务器会返回一个验证的消息,服务器通过这个消息把错误信息和偏离信息调整后再次请求,数据包顺利的下来了。。。。。就这样简单。
  
  第三,把这个数据包传回自己的客户端用客户端嵌入到游戏客户端,如果你是高手直接包包读出来也可以 ,但是加密方式改变又需要重新破包,我建议还是用我的办法比较好的,
  
  到这里大家就可以完全拥有自己的看牌器了
  
  每个游戏都不同,但是综合我们目前的思路和做发,基本就完全可以完成了的。


郑重声明:部分文章来源于网络,仅作为参考,如果网站中图片和文字侵犯了您的版权,请联系我们处理!

标签:

上一篇:梭哈和围棋

下一篇:梭哈玩法

相关推荐


图文欣赏

返回顶部