抓取带证书固定的Android应用HTTPS流量:Instagram Lite崩溃排查
解决Instagram Lite HTTPS抓包证书拒绝及Frida脚本崩溃问题
核心问题定位
主要是Android 14系统与旧版Frida脚本的兼容性冲突,操作层面的脚本加载方式也有影响,设备/ROM属于次要因素:
- Android 14对TLS/SSL底层校验逻辑、
X509TrustManager核心类实现做了改动,你使用的Http Toolkit官方Frida脚本是针对Android 13及以下版本编写的,Hook时无法正确匹配方法,触发空指针崩溃——这也是Discord、Spotify等应用同样崩溃的共性原因。 - 同时加载3个脚本可能导致多脚本Hook同一TLS方法,引发内存状态混乱。
- 若Frida版本低于16.0.0,对Android 14的底层Hook支持不完善,也会加剧崩溃问题。
解决步骤
更新Frida到最新版本
- 升级PC端工具:
pip install --upgrade frida-tools - 下载对应Android 14架构的最新Frida Server,推送到设备并运行,确保PC端与设备端版本完全一致。
- 升级PC端工具:
简化脚本,使用Android 14适配的证书Unpinning逻辑
- 不要同时加载多个脚本,单独使用针对Android 14优化的证书Unpinning脚本(替换Http Toolkit自带的旧脚本,或使用社区维护的适配版本),示例命令:
frida -U -f com.instagram.lite -l ./android14-cert-unpin.js - 若找不到适配脚本,可尝试用Objection的内置Unpinning功能,它对Android 14兼容性更好:
# 启动Objection objection -g com.instagram.lite explore # 在控制台执行禁用证书固定 android sslpinning disable
- 不要同时加载多个脚本,单独使用针对Android 14优化的证书Unpinning脚本(替换Http Toolkit自带的旧脚本,或使用社区维护的适配版本),示例命令:
临时放宽SELinux限制
- LineageOS 21的SELinux严格模式可能限制Frida的Hook操作,可临时设置为宽容模式测试:
adb shell su -c "setenforce 0" - 测试完成后可恢复:
adb shell su -c "setenforce 1"
- LineageOS 21的SELinux严格模式可能限制Frida的Hook操作,可临时设置为宽容模式测试:
重新配置Http Toolkit
- 确保Http Toolkit的Android代理配置完全适配Android 14,重新注入证书后,再结合适配的Unpinning脚本使用。
内容的提问来源于stack exchange,提问作者Ikor Jefocur
相关产品推荐
相关产品推荐

