Java.perform(function() {
var Helper
=
Java.use(
"gz.justtrustme.Helper"
);
var DefaultHttpClientClass
=
Java.use(
"org.apache.http.impl.client.DefaultHttpClient"
);
/
/
被强奸的构造方法
var DefaultHttpClientClassRapeConstructor
=
DefaultHttpClientClass.$init.overload(
'org.apache.http.conn.ClientConnectionManager'
,
'org.apache.http.params.HttpParams'
);
DefaultHttpClientClassRapeConstructor.implementation
=
function(v0, v1) {
/
/
被强奸的构造方法被调用的话,我们替换调ClientConnectionManager参数为我们的
var returnObj
=
DefaultHttpClientClassRapeConstructor.call(this, Helper.getCCM(v0, v1), v1);
console.log(
"org.apache.http.impl.client.DefaultHttpClient.$init('org.apache.http.conn.ClientConnectionManager', 'org.apache.http.params.HttpParams') was hooked!"
);
return
returnObj;
};
var DefaultHttpClientClassInit_1602
=
DefaultHttpClientClass.$init.overload();
DefaultHttpClientClassInit_1602.implementation
=
function() {
/
/
使用DefaultHttpClientClassRapeConstructor强奸它
var returnObj
=
DefaultHttpClientClassRapeConstructor.call(this, Helper.getSCCM(), null);
console.log(
"org.apache.http.impl.client.DefaultHttpClient.$init() was hooked!"
);
return
returnObj;
};
var DefaultHttpClientClassInit_1603
=
DefaultHttpClientClass.$init.overload(
'org.apache.http.params.HttpParams'
);
DefaultHttpClientClassInit_1603.implementation
=
function(v0) {
/
/
使用DefaultHttpClientClassRapeConstructor强奸它
var returnObj
=
DefaultHttpClientClassRapeConstructor.call(this, Helper.getSCCM(), v0);
console.log(
"org.apache.http.impl.client.DefaultHttpClient.$init('org.apache.http.params.HttpParams') was hooked!"
);
return
returnObj;
};
/
/
以上DefaultHttpClient的三个构造方法逻辑全部被我们用frida的方式替换了
}