热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

捕鱼大作战协议解密

捕鱼大作战协议解密协议流量解密分析捕鱼大作战这款游戏流量的加密方式及解密方法。序捕鱼大作战是tuyoo公司在很多年前上线的一款休闲游戏,对,就是那个之前

d8509aa5077cd5be18365811c463b452.png

e062f4e631c03349b458575bae193c0b.png

捕鱼大作战协议解密

558329a70c1b0c94a1b42d7c31d4c3b5.png

协/议/流/量/解/密

35971c0bb43a7ae9892b9e32181626bd.png

分析捕鱼大作战这款游戏流量的加密方式及解密方法。


386592c64752e00818e5aa7dab50509f.png

捕鱼大作战是tuyoo公司在很多年前上线的一款休闲游戏,对,就是那个之前本号批斗过的途游,这款游戏以海洋深处作为背景,玩家通过在海底施展各种捕鱼技巧,猎得丰富多彩的鱼类 。最近貌似很火,玩的人很多。

be2a443aa644b04bf1b16cc002bbec3b.png

a8767d651c138c32d5911a5ce8c5c230.png

b72c41fe54c7f03f8cc1e2618276e7d6.jpeg

6235cc5e29eab5a64f5dd5527d307593.jpeg

9ade0c0fa9a3e9e98114e425e44e5a2b.png

c658be4b16907220e76116efb6fd7dfe.png

毫无疑问,捕鱼大作战作为tuyoo的产品,协议的套路是一样的,数据是加密的。它在整体上,加密仍然是分成两个部分,一个是HTTP承载的加密数据,一个是TCP长连接承载的加密数据。这个加密逻辑和方法之前已有分析,可参考文末之前分析其它游戏的相关连接。

69555259658a1473edc80c1066919db8.png

短连接

短链接是粗糙的HTTP,里面连user agent都没有。

GET /open/v6/user/deviceAccountExistCheck?appId=10010&deviceId=386160xxx6f9436f3&clientId=Android_5.280_tyGuest,tyAccount.weixinPay,alipay,yinlian,jingdong.0-hall28.zhibo.fish3d&phoneType=&deviceName=Pixel%201&mac=5ZsNW558xxxk%2BjKu67Y6yZHB44%2BPIsDAxFMHhY37W3HyGgilLEwIbge4biJ6Klnw%3D%3D&imei=AAc/ir5454%2B54xickIaPcdaWGUrd1FFypjBFttXiIyZhHbdThTKwKCyUxA%2BKMZcXZxLblyojicaZFQ%3D%3D&imsi=&androidId=C0GWv444444WJg1HgzBpt1OFMrAoLJTED4oxlxdnEtuXKiOJxpkV&iccid=&BIParams={%22original_deviceid%22:%22130b7c5dbbb7997e1118897996f8e0bf%22,%22oaid%22:%22%22,%22google_id%22:%221a129cda-87bf-4c23-bd63-544563e341c1%22}&adTraceNamespace=3dbuyu10010&adTraceAid=2&oaid=&extraParams={}&original_deviceid=130b7c5dbbxxxxxe1118897996f8e0bf&code=B0A664507E4FEDBFE9722AE6A65FF3D1 HTTP/1.1
User-Agent:
Host: open-fish3d.tuyoo.com
Connection: Keep-Alive
Accept-Encoding: gzip

这个HTTP唯一的看点是url内的code需要计算,计算方法也很简单,首先对url参数进行排序,然后进行拼接,形成字符串,当然,拼接过程中会加盐,否则就没有意义了,接着,对字符串进行des ecb加密,加密结果进行base64编码,编码结果取MD5,基本上途游的游戏,都是这几种加密和哈希算法。其python实现代码大约如下(盐和密钥被马赛克了):

keys=sorted(params.keys())
paramsstr=''
for a in keys:
if paramsstr!='':
paramsstr=paramsstr+'&'+a+'='+params[a]
else:
paramsstr = 'xxxx'+ a + '=' + params[a]
    paramsstr=paramsstr+'yyyy'
    datastr=paramsstr.encode()
    endata=desecbEncrypt(datastr,b'zzzzz')
    bdata=base64.b64encode(endata)
code=GetMd5(bdata.decode()).upper()

如有需要,实现过程中可参考。如需密钥,找我(公众号:协议分析与还原)。

1ab9bfd761d119355bc515ea3e782698.png

长连接

和途游的其它游戏一样,长连接一直存在,实现也完全相同,本来不想写,但很多人都不会玩长连接,所以这里还是要提下。

长连接不方便抓包,需要注意,捕鱼大作战使用的端口是9013,它的长连接也是加密的,异或加密,加密的密钥在最开始传输,之后的解密依赖于密钥。长连接的内容类似下面:

2232f83e2885038d686fec1af5626191.jpeg

具体的解密代码,这里不重复了,可以参考文末列的之前的文章。如果要模拟长连接,建立连接后按算法来加密和解密就可以了。

edabd093dc4aabfa9f4f0a225bcb1954.png

e7f6bd20f542e244f9c8990495a7327f.jpeg

b732f8bd0340e91979e11133426eed2f.jpeg

b5e4317ff3f46c1b909c77b8b2a5cbdc.jpeg

4dcc5721303ff6b459fd4200146d8de0.png

a7bb01d563253994f5697165adfd2a3c.png

这款游戏的加解密,还算简单,我最喜欢简单的算法了,我相信大家也喜欢。

56ffb0ec7984929dccb7d8838296f178.png

小提醒

解密协议有困难,找我(协议分析与还原),准没错,有些应用的协议,就该多解密。                                                                                 

87177d46df46036685ae672f9484e38f.png

f90a0efa76b82b315db59e2f6c198fbd.png

END

181e13ece17ace7dc28bb3fc50e203b2.png

2719bbe8cd75cd9639e27e127322208b.png

往期回顾

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

奥迪棋牌协议破解分析与揭秘

4632b6ea345aa7e12edd928a18a4c4d1.png

6c5389712d1af420dcf1b4fb3b2ec469.jpeg

bccf85a0a50fb5626d4f22350f8166c4.png



推荐阅读
  • 【CTF 攻略】第三届 SSCTF 全国网络安全大赛—线上赛 Writeup
    【CTF 攻略】第三届 SSCTF 全国网络安全大赛—线上赛 Writeup ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 玩转直播系列之消息模块演进(3)
    一、背景即时消息(IM)系统是直播系统重要的组成部分,一个稳定的,有容错的,灵活的,支持高并发的消息模块是影响直播系统用户体验的重要因素。IM长连接服务在直播系统有发挥着举足轻重的 ... [详细]
  • 如何搭建服务器环境php(2023年最新解答)
    导读:本篇文章编程笔记来给大家介绍有关如何搭建服务器环境php的相关内容,希望对大家有所帮助,一起来看看吧。本文目录一览:1、怎么搭建p ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • GreenDAO快速入门
    前言之前在自己做项目的时候,用到了GreenDAO数据库,其实对于数据库辅助工具库从OrmLite,到litePal再到GreenDAO,总是在不停的切换,但是没有真正去了解他们的 ... [详细]
  • 超级简单加解密工具的方案和功能
    本文介绍了一个超级简单的加解密工具的方案和功能。该工具可以读取文件头,并根据特定长度进行加密,加密后将加密部分写入源文件。同时,该工具也支持解密操作。加密和解密过程是可逆的。本文还提到了一些相关的功能和使用方法,并给出了Python代码示例。 ... [详细]
  • 开发笔记:对称加密详解,以及JAVA简单实现
     (原)常用的加密有3种1、正向加密,如MD5,加密后密文固定,目前还没办法破解,但是可以能过数据库撞库有一定概率找到,不过现 ... [详细]
author-avatar
campionezhao
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有