Java.perform(function () {
// OkHttp3
try {
var CertificatePinner = Java.use("okhttp3.CertificatePinner");
CertificatePinner.check.overload("java.lang.String", "java.util.List").implementation = function () {
console.log("[*] OkHttp3 CertificatePinner.check bypassed");
};
} catch (e) {}
// TrustManager — accept all certs
try {
var TrustManagerImpl = Java.use("com.android.org.conscrypt.TrustManagerImpl");
TrustManagerImpl.verifyChain.implementation = function () {
return arguments[0];
};
} catch (e) {}
// SSLContext
try {
var X509TrustManager = Java.use("javax.net.ssl.X509TrustManager");
var SSLContext = Java.use("javax.net.ssl.SSLContext");
var TrustManager = Java.registerClass({
name: "com.frida.TrustManager",
implements: [X509TrustManager],
methods: {
checkClientTrusted: function (chain, authType) {},
checkServerTrusted: function (chain, authType) {},
getAcceptedIssuers: function () { return []; }
}
});
SSLContext.init.implementation = function (km, tm, sr) {
SSLContext.init.call(this, km, [TrustManager.$new()], sr);
};
} catch (e) {}
});