适用于 Android 的通用 SSL/TLS 证书固定绕过工具
作者:Danieldev(GitHub: @danieldev23 | Telegram: @zadevz)
一套全面的 Frida 工具包,可绕过任何 Android 应用的 SSL 固定——覆盖 Java 层和 Native 层,从标准的 OkHttp 固定到 Facebook 自定义的 proxygen native 实现。
| 功能 | 状态 |
|---|---|
| Java TrustManager / SSLContext | ✅ |
| HostnameVerifier(允许所有主机名) | ✅ |
| OkHttp CertificatePinner(标准) | ✅ |
| 混淆的 OkHttp(FB、银行类应用) | ✅ |
| Conscrypt / Android TLS provider | ✅ |
| NetworkSecurityConfig(Android 7.0+) | ✅ |
| WebViewClient SSL 错误绕过 | ✅ |
| Apache HTTP client(旧版应用) | ✅ |
| TrustKit Pinning Library | ✅ |
| Native OpenSSL / BoringSSL | ✅ |
Flutter(ssl_verify_peer_cert) | ✅ |
Facebook Proxygen(verifyWithMetrics) | ✅ |
| 自动检测已加载的 SSL 模块 | ✅ |
| CModule Native 替换(0ms 开销) | ✅ |
| 脚本 | 描述 |
|---|---|
scripts/universal_bypass.js | 通用脚本——适用于任何 Android 应用 |
scripts/fb4a_bypass.js | 专为 Facebook (FB4A) 优化的脚本,带有经 Ghidra 确认的符号 |
pip install frida-tools)frida-server 在设备的 /data/local/tmp/ 中运行run.sh 快速上手# Clone the repository
git clone https://github.com/danieldev23/frida-ssl-bypass.git
cd frida-ssl-bypass
# Make the runner executable
chmod +x run.sh
# ── Universal bypass (Any app) ──
./run.sh -p com.example.app # Attach to running app
./run.sh -p com.example.app -m spawn # Spawn app and hook
# ── Facebook specific bypass ──
./run.sh -p com.facebook.katana -s fb4a # FB4A optimized mode
./run.sh # Default: Attach to Facebook
# ── Direct Frida CLI usage ──
frida -U -f com.instagram.android -l scripts/universal_bypass.js
frida -U -p 1234 -l scripts/universal_bypass.js
run.sh)./run.sh [options]
-p, --package <name> Target package name (default: com.facebook.katana)
-s, --script <name> Script to use: fb4a | universal (default: universal)
-m, --mode <mode> Mode: attach | spawn (default: attach)
-h, --help Show help message
SSLContext.init() → Injects TrustAllManager (trusts all certificates)
HostnameVerifier → Returns true for all domain names
CertificatePinner.check() → Noop (scans for standard and obfuscated classes)
Conscrypt → Bypasses certificate chain verification
NetworkSecurityConfig → Trusts user-added CA certificates
WebViewClient → Automatically proceeds on SSL errors
SSL_CTX_set_verify() → Forces SSL_VERIFY_NONE (0)
SSL_get_verify_result() → Always returns X509_V_OK (0)
SSL_set_custom_verify() → Disables custom verification callback
verifyWithMetrics() → CModule stub returns TRUE (Facebook Proxygen)
ssl_verify_peer_cert() → Returns 1 (Flutter / Dart Engine)
该工具包使用两种策略自动检测加载到内存中的 SSL 模块:
android_dlopen_ext / dlopen,在 native SSL 库加载到 RAM 时进行拦截(并带有退避轮询回退机制)。frida-ssl-bypass/
├── README.md # Documentation (English)
├── LICENSE # MIT License
├── run.sh # Auto-runner script for frida-server & hooks
├── .gitignore
└── scripts/
├── universal_bypass.js # Universal bypass script for any app
└── fb4a_bypass.js # FB4A specific optimized bypass script
本项目严格用于安全研究和教育目的。请仅在你拥有或已获得明确授权进行审计的应用上使用此工具。作者对任何滥用行为不承担任何责任。
基于 MIT 许可证分发——完整详情请参见 LICENSE。
| 应用 | 包名 | 推荐脚本 | 备注 |
|---|
com.facebook.katana | fb4a / universal | C/C++ Native Proxygen 绕过 | |
com.instagram.android | universal | OkHttp + Native OpenSSL | |
com.whatsapp | universal | Noise Protocol + Native SSL | |
| Twitter / X | com.twitter.android | universal | OkHttp Pinning |
| TikTok | com.zhiliaoapp.musically | universal | BoringSSL 自定义验证 |
| 银行类应用 | 各不相同 | universal | Conscrypt + TrustKit |
| Flutter 应用 | 各不相同 | universal | 挂钩 libflutter.so 中的验证链 |
| React Native | 各不相同 | universal | 覆盖底层的 OkHttp 层 |