实验环境
python == 3.99
frida(葫芦娃) == 16.1.4
app == 哈罗 6.54.0
抓包
首先它抓包不进行校验
获取验证码数据包
可以看到请求体是加密的 请求头也有好多密文 响应体也是密文
获取登录数据包
可以看到 和 验证码请求 大致一样
分析
请求头 signature 这个是必须要 逆向的 下面这2个不分析 在逆向的过程中可以看到 nonce 是uuid timestamp 是时间戳 请求体 一大坨base64 也是要分析的 响应体 响应体也是密文 同理 看抓包 获取验证码 和 登录 基本一致 出一个 也就都出了
逆向signature
jadx搜索 很可疑
记好入参 接着进
看返回值 传了上图的参数 又new 了一个key 然后加密(m83805a) 转 hex(m83804a)
进加密方法里看看 加密是 HmacSHA1
hook值 得 明文 和 key (反frida)
它反frida 直接删反frida的so
import frida
import sys
host = '127.0.0.1:2198'
# 获取设备信息
manager = frida.get_device_manager()
device = manager.add_remote_device(host)
pid = device.spawn(["com.jingyao.easybike"])
session = device.attach(pid)
scr = """
Java.perform(function () {
var dlopen = Module.findExportByName(null, "dlopen");
var android_dlopen_ext = Module.findExportByName(null, "android_dlopen_ext");
Interceptor.attach(dlopen, {
onEnter