吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 9446|回复: 43
收起左侧

[Android 原创] coco2djs手游封包协议分析jsc文件解密[客户虐我千百次,我待客户如初恋]

  [复制链接]
ai474427793 发表于 2023-5-11 21:50
本帖最后由 ai474427793 于 2023-5-11 21:53 编辑

前言
多图预警,流量提醒
某鱼上面接了个单子,关于安卓手游逆向分析的.本来不想搞的,今天客户又联系我说看下,好吧,看在money的份上那就分析看看
1.png 2.png
初步分析下载安装app,没啥说的.像这种手游类型的,一般都是TCP的封包协议,有的是websocket,有的是纯粹的TCP,
那么就先抓包看看,我用的是pixel3,配置抓包环境就不详细展开了.打开charles,发现到登录服务器的时候会提示连接不上服务器.那就换httpcanary试试,
3.png 4.png
可以明显看到是websocket的协议,先打开看看是否是明文显示的.
5.png 6.png
可以看到发送包部分明文,再看看接收的包
7.png 8.png
有的有明文,有的却都是乱码,且乱码部分的数据都比较大.初步判断有做压缩传输.APP分析接下来就要去看下app里面的构造了,首先游戏类的app,因为要频繁更新,所以一般不存在加固加壳的情况,用压缩软件打开app目录,可以看到
8-1.png 99.png
cocos2d jsc文件,并且在lib目录看到了cocos2djs.so,确定这个游戏主要的逻辑应该都在这个jsc文件里面.
根据经验直接用mt管理器以十六进制文本打开cocos2djs.so,然后搜索ASCII字符main.js,
10.png 11.png 12.png

这个格式的 0ed68e2d-8b2f-4a就是jsc的解密密钥key尝试解密https://bbs.kanxue.com/thread-267920.htm#msg_header_h2_1
根据这篇大佬的分析里面有提到的jsc解密v1.44工具,下载打开,输入key,然后拖入
project.jsc,运气不错,顺利的解开了.(ps:文件有点大,可能会卡一会儿,耐心等待)
13.png
接下来就找个工具把js代码格式化一下.然后关键词大法搜索一下"ws://","send","sendmessage","encrypt","encode",之类的.
顺利的定位到发包前的编码代码位置,先上编码的图
14.png
然后是解码的
15.png
编码的和解码的差不多,只是多了个HashCode,应该是服务器接收到客户端的数据后会根据这个hashcode来判断数据
是否是合法提交.代码分析算法分析重点看下解码的代码,
先读取前4个字节作为headerFlag来判断数据是否被压缩,如果是压缩的需要执行解压缩inflate操作
再读取4个字节是数据的长度,(ps:注意要做字节集反转,大小端网络字节序的转换)
然后一个字节作为moduleEnum
再一个字节作为cmdEnum
再两个字节作为statusCode
然后从下个字节开始到尾部刚好是与数据长度相等,那么这最后读取出来的readBytes就是最终的数据了.算法还原解析数据接下来根据前面的分析,来通过代码实现数据的解析,看看服务器返回的数据明文是什么东东
16.png
图上第一个包是发送的包,因为没有做hashcode的判断,导致前面多了两个字节,后面丢了两个字节
不过接收的包是可以看到完整信息的.至此封包分析结束,发送的包只要按照相同的逻辑做组包即可,记得带上hashcode.总结1.逆向分析的过程,上文取巧通过搜索main.js来直接定位到了key的位置.如果做适当的加密混淆可以避免这种情况,
那么就得像上贴大佬的方式去IDA定位xxtea,然后frida来hook关键的位置提取key值.
2.这个游戏只是对数据做了压缩,且短数据直接没有做处理,没有做加密或者序列号的处理,不过考虑到游戏类对通讯的低延时要求,不做评价.
3.最后在附件贴上游戏文件,如有侵权,联系删除.好了,到这里基本的分析记录也已经结束了,谈不上教程,只是把自己的学习分析过程记录一下.大家有什么好的方法和见解也欢迎交流,谢谢大家。最后的最后,客户放我鸽子了,这也是这篇帖子会出现的原因,大家再见! 17.png
分析记录.zip (731 Bytes, 下载次数: 122)

免费评分

参与人数 11威望 +2 吾爱币 +109 热心值 +11 收起 理由
梦旅意中人 + 1 + 1 我很赞同!
伤城幻化 + 1 + 1 用心讨论,共获提升!
FireEgg + 1 + 1 用心讨论,共获提升!
柳叶刀 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
allspark + 1 + 1 用心讨论,共获提升!
丶沐箐 + 1 + 1 热心回复!
aa5309 + 1 + 1 用心讨论,共获提升!
Chenanin + 1 热心回复!
junjia215 + 1 + 1 谢谢@Thanks!
Minesa + 1 + 1 用心讨论,共获提升!
qtfreet00 + 2 + 100 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

jkl5322203 发表于 2023-5-12 18:07
钱好说,钱不是问题,一般都是没钱给你画饼。
wei125483 发表于 2023-6-2 21:19
为什么手机已Root,安装了系统CA证书,小黄鸟提示【目标APP使用非系统CA证书列表】,无法抓包呢?
xdm1957 发表于 2023-5-12 11:21
 楼主| ai474427793 发表于 2023-5-12 19:04
jkl5322203 发表于 2023-5-12 18:07
钱好说,钱不是问题,一般都是没钱给你画饼。

之前有个老哥想搞抢购,说搞出来了,10W-20W随便你开,最后搞出来,闭嘴了
H_Feb 发表于 2023-5-12 19:23

支持楼主, 学习一下
tukuai88ya 发表于 2023-5-12 20:57
感谢分享
ytc123456 发表于 2023-5-13 02:48
学习 支持
liuhai7435 发表于 2023-5-13 10:15
大佬搜索ASCII字符main.js这里的main.js是怎么来的大佬
试试去爱你 发表于 2023-5-13 10:17
钱好说,钱不是问题,一般都是没钱给你画饼。
丶小蓝丶 发表于 2023-5-13 10:44
ai474427793 发表于 2023-5-12 19:04
之前有个老哥想搞抢购,说搞出来了,10W-20W随便你开,最后搞出来,闭嘴了

在哪里出来看看
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-22 00:20

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表