由于快手使用的是quic协议,所以常规抓包工具是抓不到包的,反编译查看源码可以清楚看到okhttp3的包名,所以介绍两种抓包方式
一. 通过hook禁用quic协议降级为http发包
快手版本: 8.1.30.16773
Java.perform(function(){
var dd = Java.use("j.c.e.d");
dd.$init.overload('java.lang.String','java.lang.String').implementation=function (a1,a2){
this.$init("{\"enable_quic\": false, \"preconnect_num_streams\": 2, \"quic_idle_timeout_sec\": 180, \"quic_use_bbr\": true, \"altsvc_broken_time_max\": 600, \"altsvc_broken_time_base\": 60, \"proxy_host_blacklist\": []}",a2)
}
})
通过frida -U ks.js -f com.smile.gifmaker --no-pause
启动
二. hook发包模块okhttp3
1. hook okhttp3模块
Java.perform(function(){
var OkHttpClient = Java.use("okhttp3.OkHttpClient");
OkHttpClient.newCall.implementation = function (request) {
var result = this.newCall(request);
console.log("请求:", request.toString());
return result;
};
})
使用这种方式只能hook到请求链接,可以通过 hook 拦截器来拿到想要的数据
2. okhttp成品拦截器
hook方式推荐博客