途游斗地主加密协议分析及破解

 分析途游斗地主的加密协议。

作为一个手机棋牌游戏厂商,途游是排得上号的,它的途游斗地主一直很火热,隐约记得,这个厂商一直在搞斗地主的全国竞技赛事,并蹭上了体育总局的IP,几轮投资人包括昆仑万维、奇虎360、创新工场、挑战者资本、星路资本等,甚是了得,不知道身后是哪位大佬。

作为专业的协议分析平台,当然不能错过对这个厂商的产品的分析,这里,将对途游棋牌的当家花旦——途游斗地主进行分析。

毫无疑问,途游斗地主的的数据是加密的,不是HTTP,不然这里就只有鄙视,而不会专门分析了。

它在整体上,加密分成两个部分,一个是HTTP承载的加密数据,一个是TCP长连接承载的加密数据。因此本文会分别对这两块的加密进行分析。

01

整体情况

在刚接触途游斗地主的时候,按标准分析套路,首先对它使用顺便进行抓包,看看报文的大体情况,几个26000端口的HTTP:

一个非标端口的TCP长连接:

不得不感慨,这款游戏采用的是上来直接就干的模式,进入游戏,一切都自动了,直接进入牌桌牌局,没有其它额外的东西,我都忍不住玩了几局。

言归正传,看了下游戏相关的流量加密了,那我们也开干吧!

使用android killer打开APK包,看了下大体结构,游戏是使用cocos2dx开发的,斗地主的游戏主体在脚本ddz_release.jsc里面:

下面的章节就介绍它的解密了。

02

HTTP体解密

前面抓包看到,打开途游斗地主首先出现的是几个26000端口的HTTP,使用的域名是fee.uebilling.com,不知道这个服务器上都在做啥:

很明显,请求和响应里面的http体是base64编码的,解开base64是二进制,明显有加密,一番探索,得到结果,加密方法是DES_ecb3_encrypt,密钥固定24字节"dbbsRYnaQPKia/sCWJGRNAsQH7PLIw3a",直接上解密代码:

解一段报文试试,各种参数:

基本上是属于个人信息。

03

TCP长连接解密

游戏运行过程中,长连接一直存在,估计是进行游戏数据的交互的:

继续分析,直接粗暴地上解密代码,不详细解释了:

简单的异或加密,只是用来异或的密钥值是动态的,每次连接有变化,每个报文块也会变化,密钥是连接起始的数字和每块长度数据相加的结果。

连接的IP端口怎么协商的,这里就不介绍了,如果哪位朋友有兴趣,分析一番就能得到结论。

解密没什么难度,诡异的是解密结果:

尝试在游戏界面找结果出现的地方,没找到呀,这是为啥?

再结合百度搜索出现的诡异热点内容关联:

是不是背后隐藏了什么秘密?

04

总结

途游斗地主这款游戏,加密的强度很小,分析起来基本没有难度,有兴趣的朋友可以拿去练手。3des、异或这些加密,是最初级的加密算法了。

我对它分析,其实感兴趣的是它背后的东西,比如上一节的末尾“途游输了倾家荡产”这个背后有些什么秘密,这个相关热点,我倾向于相信百度没有进行人工操控,完全是无数百度用户的搜索动作配合代码逻辑触发的,大家不妨一起探索,看看是如何倾家荡产的。

大家一起努力,学习学习再提高,可与我联系,一起交流心得。


长按进行关注,时刻进行交流。

点击“在看”,与朋友一起分享↘

猜你喜欢

转载自www.cnblogs.com/protosec/p/11625203.html