function main() { Java.perform(function () { const SSLCLientFactory = Java.use("ec0.a"); const CertificatePinnerBuilder = Java.use("okhttp3.CertificatePinner$Builder"); const JavaCollection = Java.use("java.util.Collection"); SSLCLientFactory.b.implementation = function () { console.log("[SSLCLientFactory] Hook b() 方法,修改证书固定规则"); // 获取原始 Builder let originalBuilder = this.b(); // 获取原 CertificatePinner.Builder const field = originalBuilder.getClass().getDeclaredField("v"); field.setAccessible(true); let certPinnerBuilder = field.get(originalBuilder); // 3. 获取 Builder 内部存储规则的列表 a const pinListField = certPinnerBuilder.getClass().getDeclaredField("a"); pinListField.setAccessible(true); let pinList = pinListField.get(certPinnerBuilder); // 4. 清空列表 const javaList = Java.cast(pinList, JavaCollection); javaList.clear(); console.log("[+] 证书固定规则已清空(a 列表为空)"); return originalBuilder; };});}setImmediate(main);