某某查App 请求头Authorization 逆向
抓包
data参数如图,没什么好说的 手机号和密码的 Md5
请求头参数如下:
看到这么多参数我眼都花了,经过一个个参数删减(拦截修改请求)测试,最终需要逆向的参数只有Authorization
分析
既然要分析参数那肯定要对 app 进行一些 hook,看看这个参数是从哪来的,怎么生成的
遇到这种情况可以直接用Java 层常见加密通杀方案过一遍,说不定就直接解决了
结果当然是没有解决,不然我也没必要写了
下面开始正常流程分析
1. 脱壳拿到源码
先看是什么加固方式
爱加密加固,直接脱壳即可,过程不在详细说
2. 静态分析
直接搜索Authorization
我们直接进入 a0函数
使用 Frida Hook b0的两个入参
得到如下结果:
第一个参数:imei-not-exist
第二个参数:1686888384131 (时间戳)
进入 b0 函数
实际上是把一个字符串经过自写加密函数,得到最终的Authorization
进入JMEncryptBoxByRandom.encryptToBase64看看到底是什么
嗯,就是把字符串转换为字节数组然后经过一个encryptByRandomType2函数,随机打乱 字节数组,然后再 base64 即可
注意看这个encryptByRandomType2
native类型 说明加密逻辑在 So 层。
就不去 so 层看了,太麻烦,我们直接 hook最开始的 a0 函数即可
1 | function getAuthorization() { |
大功告成。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Zyb'Blog!