Frida证书固定绕过对所有安卓应用均失败的问题求助
解决Frida证书绕过中getPackageInfoNoCheck重载错误的方案
问题根源
你遇到的错误是因为getPackageInfoNoCheck方法存在多个重载版本,原脚本未指定具体调用哪一个,导致Frida无法正确解析方法调用。
修复步骤
直接修改你使用的frida-script.js脚本中对应方法的调用:
打开脚本,找到调用
getPackageInfoNoCheck的代码段(通常在处理应用包信息的部分)将原调用代码:
const packageInfo = pm.getPackageInfoNoCheck(appInfo, null);替换为指定重载的版本,根据你的Android版本选择:
- 适配带三个参数的重载(多数高版本Android):
const packageInfo = pm.getPackageInfoNoCheck.overload('android.content.pm.ApplicationInfo', 'android.content.res.CompatibilityInfo', 'boolean')(appInfo, null, false); - 适配带两个参数的重载(低版本Android):
const packageInfo = pm.getPackageInfoNoCheck.overload('android.content.pm.ApplicationInfo', 'android.content.res.CompatibilityInfo')(appInfo, null);
也可以用try-catch同时兼容两个版本,增强脚本通用性:
let packageInfo; try { packageInfo = pm.getPackageInfoNoCheck.overload('android.content.pm.ApplicationInfo', 'android.content.res.CompatibilityInfo', 'boolean')(appInfo, null, false); } catch (e) { packageInfo = pm.getPackageInfoNoCheck.overload('android.content.pm.ApplicationInfo', 'android.content.res.CompatibilityInfo')(appInfo, null); }- 适配带三个参数的重载(多数高版本Android):
保存修改后的脚本,重新执行Frida命令:
frida -U -l ./frida-script.js -f tech.httptoolkit.pinning_demo执行
%resume后,尝试抓包验证证书绕过是否生效。
替代方案
如果不想修改脚本,可以使用已修复该问题的社区维护版证书绕过功能,比如通过Objection执行:
objection -g tech.httptoolkit.pinning_demo run android sslpinning disable
内容的提问来源于stack exchange,提问作者Rehman Ali
相关产品推荐
相关产品推荐

