咪咕音乐sign协议分析

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了咪咕音乐sign协议分析相关的知识,希望对你有一定的参考价值。

参考技术A 咪咕音乐sign协议分析

app 7.7.0

抓包

是个小写的16进制的32位字符,jadx搜索 "sign"

30多个结果,不过有挺多是调用其他sdk的,比如 com.meizu.* , com.unionpay.* ,这些都不太需要关注。

看看 com.migu.tsg.s.b

com.migu.tsg.j.d

直接调用 MD5 ,frida hook看看就行了,后面就省略了。

可以看到是个大写的16进制的32位字符,搜索了 "sign" ,看了几个都不太像。然后看到header还有个字段 signVersion ,搜索这个字符串,发现也没结果。

尝试hook系统的 java.security.MessageDigest 和 javax.crypto.Mac 这两个库的函数,然后发现也没有结果。

再换另一种方法,猜测可能是在 so 里面生成的,于是尝试使用 frida_hook_libart 的 hook_art.js ,注释其他的模块,只保留 NewStringUTF ,然后启动,发现还是没有。

再换另一种方法,使用Yang大佬的Frida实现okhttp3.Interceptor并打印堆栈

终于有结果了,可以看到调用堆栈,其中我们比较关注的是 com.migu.bizz_v2.interceptor.BaseInterceptor.intercept ,但是这个函数在 jadx 看不到啊。。

找不到该怎么办,这时候应该搜索 classLoader

虽然有点多,不过我们还是一个找,最后发现是在 base_runtime-master.apk 这个文件里,

最后是调用这两个的其中一个,我们已经可以看到调用了 SecuritySignUtils.sign ,但是这个方法又不在这两个apk文件里面。

不过jadx无法查看 signStreamBody 方法,我们改用GDA打开

可以看到也是调用了 SecuritySignUtils 这个类。

继续搜索这个类

打开文件看看,发现是在 libraries_feature-master.apk 这个文件

所以最终是调用了 libmgsign.so 文件,可以hook验证一下。

可惜的是, libmgsign.so 不在上述三个apk文件里,那么怎么找到它呢?frida中执行下列命令

那就把这个文件 pull 下来,ida打开

所以它最后也是个md5,至于输入是什么,是否经过魔改,hook一下md5的 init , update , final 就清楚了,之后再分析。

以上是关于咪咕音乐sign协议分析的主要内容,如果未能解决你的问题,请参考以下文章

经典蓝牙蓝牙 A2DP协议分析

咪咕音乐链接歌词封面搜索等接口API

网络协议分析

网络协议分析课程设计:基于TCP协议网上聊天程序

网络协议分析

SNI协议分析