咪咕音乐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协议分析的主要内容,如果未能解决你的问题,请参考以下文章