
Toolkit Frida che aggira il certificate pinning SSL/TLS nelle app Android, effettuando l'hook di Java TrustManager, OkHttp, Conscrypt e dei livelli nativi OpenSSL/BoringSSL.
Bypass universale del Certificate Pinning SSL/TLS per Android
Autore: Danieldev (GitHub: @danieldev23 | Telegram: @zadevz)
Un toolkit Frida completo che aggira il SSL pinning su qualsiasi app Android — coprendo sia il livello Java che quello Native, dal pinning standard di OkHttp all'implementazione nativa personalizzata proxygen di Facebook.
| Funzionalità | Stato |
|---|---|
| Java TrustManager / SSLContext | ✅ |
| HostnameVerifier (Consente tutti gli hostname) | ✅ |
| OkHttp CertificatePinner (Standard) | ✅ |
| OkHttp Offuscato (FB, app bancarie) | ✅ |
| Conscrypt / Provider TLS Android | ✅ |
| NetworkSecurityConfig (Android 7.0+) | ✅ |
| Bypass errori SSL di WebViewClient | ✅ |
| Client Apache HTTP (App legacy) | ✅ |
| Libreria di Pinning TrustKit | ✅ |
| OpenSSL / BoringSSL nativo | ✅ |
Flutter (ssl_verify_peer_cert) | ✅ |
Facebook Proxygen (verifyWithMetrics) | ✅ |
| Rilevamento automatico dei moduli SSL caricati | ✅ |
| Sostituzione nativa con CModule (overhead 0ms) | ✅ |
| Script | Descrizione |
|---|---|
scripts/universal_bypass.js | Script universale — funziona su qualsiasi app Android |
scripts/fb4a_bypass.js | Script ottimizzato specificamente per Facebook (FB4A) con simboli confermati da Ghidra |
pip install frida-tools)frida-server in esecuzione in /data/local/tmp/ sul 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)
Il toolkit rileva automaticamente i moduli SSL caricati in memoria utilizzando due strategie:
android_dlopen_ext / dlopen per intercettare le librerie SSL native mentre vengono caricate in RAM (con fallback di polling con 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
Questo progetto è destinato esclusivamente a scopi di ricerca sulla sicurezza e didattici. Utilizza questo strumento solo su applicazioni di tua proprietà o per le quali disponi di esplicita autorizzazione all'audit. L'autore non si assume alcuna responsabilità per qualsiasi uso improprio.
Distribuito sotto Licenza MIT — Vedi LICENSE per i dettagli completi.
| Applicazione | Nome Pacchetto | Script Consigliato | Note |
|---|
com.facebook.katana | fb4a / universal | Bypass 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 OkHttp |
| TikTok | com.zhiliaoapp.musically | universal | Verifica personalizzata BoringSSL |
| App Bancarie | varie | universal | Conscrypt + TrustKit |
| App Flutter | varie | universal | Hook della catena di verifica in libflutter.so |
| React Native | varie | universal | Copre il livello OkHttp sottostante |