
Набор инструментов Frida, обходящий привязку SSL/TLS-сертификатов в Android-приложениях путём перехвата Java TrustManager, OkHttp, Conscrypt и нативных слоёв OpenSSL/BoringSSL.
Универсальный обход привязки SSL/TLS сертификатов для Android
Автор: Danieldev (GitHub: @danieldev23 | Telegram: @zadevz)
Комплексный набор инструментов Frida, который обходит SSL pinning в любом Android-приложении — охватывая как Java-, так и нативные слои, от стандартного pinning в OkHttp до кастомной нативной реализации proxygen от Facebook.
| Возможность | Статус |
|---|---|
| Java TrustManager / SSLContext | ✅ |
| HostnameVerifier (разрешает все имена хостов) | ✅ |
| OkHttp CertificatePinner (стандартный) | ✅ |
| Обфусцированный OkHttp (FB, банковские приложения) | ✅ |
| Conscrypt / провайдер Android TLS | ✅ |
| NetworkSecurityConfig (Android 7.0+) | ✅ |
| Обход SSL-ошибок WebViewClient | ✅ |
| Apache HTTP client (устаревшие приложения) | ✅ |
| Библиотека TrustKit Pinning | ✅ |
| Нативный OpenSSL / BoringSSL | ✅ |
Flutter (ssl_verify_peer_cert) | ✅ |
Facebook Proxygen (verifyWithMetrics) | ✅ |
| Автоопределение загруженных SSL-модулей | ✅ |
| Нативная замена через CModule (нулевые накладные расходы) | ✅ |
| Скрипт | Описание |
|---|---|
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, чтобы перехватывать нативные 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++ Proxygen | |
com.instagram.android | universal | OkHttp + нативный OpenSSL | |
com.whatsapp | universal | Noise Protocol + нативный SSL | |
| Twitter / X | com.twitter.android | universal | Pinning в OkHttp |
| TikTok | com.zhiliaoapp.musically | universal | Кастомная проверка BoringSSL |
| Банковские приложения | varies | universal | Conscrypt + TrustKit |
| Flutter-приложения | varies | universal | Перехватывает цепочку проверки в libflutter.so |
| React Native | varies | universal | Покрывает нижележащий слой OkHttp |