
Kit de ferramentas Frida que contorna o pinning de certificados SSL/TLS em aplicações Android, fazendo hooking nas camadas Java TrustManager, OkHttp, Conscrypt e OpenSSL/BoringSSL nativas.
Bypass Universal de SSL/TLS Certificate Pinning para Android
Autor: Danieldev (GitHub: @danieldev23 | Telegram: @zadevz)
Um toolkit abrangente de Frida que contorna o SSL pinning em qualquer aplicativo Android — cobrindo tanto as camadas Java quanto Native, desde o pinning padrão do OkHttp até a implementação nativa customizada proxygen do Facebook.
| Recurso | Status |
|---|---|
| Java TrustManager / SSLContext | ✅ |
| HostnameVerifier (Permite todos os hostnames) | ✅ |
| OkHttp CertificatePinner (Padrão) | ✅ |
| OkHttp Ofuscado (FB, apps bancários) | ✅ |
| Conscrypt / Provedor TLS do Android | ✅ |
| NetworkSecurityConfig (Android 7.0+) | ✅ |
| Bypass de erro SSL do WebViewClient | ✅ |
| Cliente Apache HTTP (Apps legados) | ✅ |
| Biblioteca de Pinning TrustKit | ✅ |
| OpenSSL / BoringSSL Nativo | ✅ |
Flutter (ssl_verify_peer_cert) | ✅ |
Facebook Proxygen (verifyWithMetrics) | ✅ |
| Auto-detecção de módulos SSL carregados | ✅ |
| Substituição Nativa via CModule (0ms de overhead) | ✅ |
| Script | Descrição |
|---|---|
scripts/universal_bypass.js | Script universal — funciona em qualquer aplicativo Android |
scripts/fb4a_bypass.js | Script otimizado especificamente para o Facebook (FB4A) com símbolos confirmados via Ghidra |
pip install frida-tools)frida-server em execução em /data/local/tmp/ no dispositivorun.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)
O toolkit auto-detecta módulos SSL carregados em memória usando duas estratégias:
android_dlopen_ext / dlopen para interceptar bibliotecas SSL nativas conforme elas carregam na RAM (com fallback de polling com backoff).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
Este projeto destina-se estritamente a pesquisa de segurança e fins educacionais. Utilize esta ferramenta apenas em aplicativos que você possui ou tem autorização explícita para auditar. O autor não assume qualquer responsabilidade por uso indevido.
Distribuído sob a Licença MIT — Consulte LICENSE para detalhes completos.
| Aplicativo | Nome do Pacote | Script Recomendado | Observações |
|---|
com.facebook.katana | fb4a / universal | Bypass do Proxygen Nativo C/C++ | |
com.instagram.android | universal | OkHttp + OpenSSL Nativo | |
com.whatsapp | universal | Noise Protocol + SSL Nativo | |
| Twitter / X | com.twitter.android | universal | Pinning do OkHttp |
| TikTok | com.zhiliaoapp.musically | universal | Verificação customizada do BoringSSL |
| Apps Bancários | varia | universal | Conscrypt + TrustKit |
| Apps Flutter | varia | universal | Hook da cadeia de verificação em libflutter.so |
| React Native | varia | universal | Cobre a camada OkHttp subjacente |