Я пытаюсь перехватить функции библиотеки OKHttp, используя затем следующий скрипт Frida:
setTimeout(function(){
Java.perform(function (){
console.log("-- Hook OKHttp library --");
try {
var Builder = Java.use('okhttp3.CertificatePinner$Builder');
var Pin = Java.use('okhttp3.CertificatePinner$Pin');
var OkHttpClient = Java.use('okhttp3.OkHttpClient$Builder');
console.log("OkHTTP classes found");
Builder.add.overload.implementation = function(a, b) {
console.log("TEST ADD");
}
Pin.matches.overload.implementation = function (a) {
console.log("TEST matches")
return true;
}
OkHttpClient.certificatePinner.overload.implementation = function (a) {
console.log("TEST certificatePinner");
}
console.log("OkHTTP functions found");
} catch (err) {
// If we dont have a ClassNotFoundException exception, raise the
// problem encountered.
console.log("OkHTTP 3.x classes/functions not Found");
}
});
},0);
И я выполняю следующий код в моем приложении Android:
CertificatePinner certificatePinner = new CertificatePinner.Builder()
.add(certificateDNWildcard, certificateHash)
.build();
//Create http client with pinned certificate
OkHttpClient okHttpClient = new OkHttpClient.Builder()
.certificatePinner(certificatePinner)
.build();
Как видите, я вызываю функцию .add(certificateDNWildcard, certificateHash)
, которую пытаюсь перехватить. Однако, когда я выполняю эту функцию, в терминале ничего не печатается. Кроме того, вывод моего терминала:
-- Hook OKHttp library --
OkHTTP classes found
OkHTTP functions found
Следовательно, он находит классы и функции; однако сам крючок не работает эффективно. Может ли кто-нибудь помочь мне?
Я использую:
* Frida 12.8.11
* Android 10
* ARM64