关于安全:某手-v8x-签名计算方法一-先从抓包说起

7次阅读

共计 1408 个字符,预计需要花费 4 分钟才能阅读完成。

一、指标

某手早就搞过好几次了,不过人家致力,几天小版本,几周大版本,一不留神就看不懂了,这不降级到 8.x 之后,包都抓不到了。蓝瘦香菇。

TIP: 陈腐热乎的 8.3.30.17506

二、步骤

先从 okhttp3 搞起

Charles 就不必祭进去了,象征性的抓了几个无关痛痒的数据。看不到热门数据包不好玩。咱们先从 okhttp3 动手,从 jadx 里看 okhttp3 还是没有被放弃的。

应用 okhttp3 发送一个申请,大略如下两步:

Call call = new OkHttpClient().newCall(new Request.Builder().build());
Response response=call.execute();

那咱们就先 hook newCall

var OkHttpClient = Java.use("okhttp3.OkHttpClient");
OkHttpClient.newCall.implementation = function (request) {var result = this.newCall(request);
    console.log(request.toString());
    return result;
};

太棒了,Request 数据打印进去了,那 Response 数据我也要,hook execute

Override // okhttp3.Call.Factory
    public Call newCall(C16082Request request) {return RealCall.newRealCall(this, request, false);
    }

从 jadx 的代码里看 newCall 返回的是 RealCall 对象,所以咱们也要 hook RealCall 的 execute

var OkHttpRealCall = Java.use("okhttp3.RealCall");
OkHttpRealCall.execute.implementation = function(){var result = this.execute();            
        console.log(result.toString());
        return result;
}        

通信协定是 QUIC,怪不得 Charles 搞不定。不过这个抓包后果怎么看怎么不开心,发送过来的数据也看不到,接管回来的数据也看不到。脱了一半让人更焦急。

OkHttpLogger-Frida

开始介绍新敌人了,https://github.com/siyujie/OkHttpLogger-Frida 用了一堆神奇的办法达到了命令行版的 Charles 的成果。

首先将 okhttpfind.dex 拷贝到 /data/local/tmp/

而后 frida -U -l okhttp_poker.js -f com.example.demo –no-pause 就能够跑起来了。

这个成果还不错,感觉又回到了 Charles 的美好时光。

过滤 url

美妙的时光总是短暂的,刷了一会,App 就提醒网络无法访问。难道还有什么坑?

先把返回值数据的打印屏蔽掉。这怎么玩都不会提醒了。奋飞狐疑,在取热门数据数据包的时候,因为数据比拟大,所以咱们打印进去比拟费时,可能就会导致拜访超时。

还好作者提供了一个 filterUrl 函数,能够指定打印你须要剖析的 url,这样能够避免再产生超时的问题。

三、总结

打工人还是很苦逼呀,降级这么快,不搞点新花样都没法好好抓包了。

不要和我谈幻想,我打工就是为了钱

正文完
 0