网上有一些patch so的方法,我尝试了一下抓包会有一些问题
可以通过hook java层如下图所示的地方,dy默认走的是quick协议,但是为了兼容更多版本的手机,有一个降级操作,毕竟担心cronet低版本适配不好,所以可以通过hook这个方法来使其强制降级到Http协议。
frida脚本:
1
2
3
4
5
6
7
8
9
setImmediate(function() {
Java.perform(function() {
var targetClass
=
'org.chromium.CronetClient'
;
var methodName
=
'tryCreateCronetEngine'
;
var gclass
=
Java.use(targetClass);
gclass[methodName].overload(
'android.content.Context'
,
'boolean'
,
'boolean'
,
'boolean'
,
'boolean'
,
'java.lang.String'
,
'java.util.concurrent.Executor'
,
'boolean'
).implementation
=
function(arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7) {
}
})
})
frida hook一下就可以抓包了,解决了so patch一些包抓不了的问题,应该可以通杀全版本dy。