
모든 Flutter 및 Shorebird 버전에 대한 자동화된 SSL 핀닝 우회 — PyGhidra 정적 분석이 BoringSSL을 자동으로 발견하고 즉시 실행 가능한 Frida 및 Renef 스크립트를 생성합니다
PyGhidra를 사용하여 libflutter.so를 리버스 엔지니어링하여 SSL 인증서 검증 함수를 찾은 다음, Frida와 Renef 모두에서 사용할 수 있는 우회 스크립트를 생성합니다.
libflutter.so를 헤드리스 모드로 로드하고 정의된 모든 문자열에서 ssl_client를 스캔합니다.ssl_crypto_x509_session_verify_cert_chain입니다.flutter_ssl_pinning.js) — 런타임에 반환 값을 ptr(1)(SSL_VERIFY_OK)로 패치합니다.flutter_ssl_pinning.lua) — Memory.patch를 사용하여 함수 진입점을 (ARM64)로 덮어씁니다.MOV X0, #1 ; RET환경 변수
GHIDRA_INSTALL_DIR을 설정하거나--ghidra-install-dir을 전달하세요.
# libflutter.so 분석 및 두 스크립트 생성
python3 flutter_ssl_pinning.py libflutter.so
# Frida로 실행
frida -U -f com.example.app -l flutter_ssl_pinning.js
# Renef로 실행
renef -s com.example.app -l flutter_ssl_pinning.lua
| 인수 | 기본값 | 설명 |
|---|---|---|
binary | (필수) | libflutter.so의 경로 |
output | flutter_ssl_pinning | 출력 파일 기본 이름 (<name>.js 및 <name>.lua 생성) |
--module | libflutter.so | 대상 프로세스의 모듈 이름 |
--ghidra-install-dir | 자동 | Ghidra 설치 디렉터리 |
| 파일 | 도구 | 메커니즘 |
|---|---|---|
flutter_ssl_pinning.js | Frida | Interceptor.attach + retval.replace(ptr(1)) |
flutter_ssl_pinning.lua | Renef | Memory.patch (MOV X0, #1 ; RET) |
생성된 출력 예제는 example/ 디렉터리를 참조하세요.
| 대상 | 상태 |
|---|---|
Google Flutter libflutter.so (arm64-v8a) | ✅ 작동 확인 |
| Shorebird 패치 Flutter 빌드 | ✅ 작동 확인 |
| Ghidra 12.x + pyghidra | ✅ 작동 확인 |
| Frida 17.x 및 16.x | ✅ 작동 확인 |
| Renef (최신 버전) | ✅ 작동 확인 |
Google Flutter와 Shorebird 모두 동일한
libflutter.soSSL 엔진을 사용합니다. 동일한 Flutter 엔진 버전의 경우 빌드 유형에 관계없이 자동으로 발견된 RVA가 동일합니다.
프록시 기반 MITM을 위한 핀닝 우회 외에도, 자체 포함된 flutter_http_monitor.py를 사용하여 Frida 내에서 직접 복호화된 HTTP 트래픽을 캡처할 수 있습니다.
이 스크립트는 libflutter.so(모든 Flutter 버전, arm64)에서 BoringSSL의 SSL_write/SSL_read를 자동으로 찾아 평문 요청과 응답을 출력하는 Frida 스크립트를 생성합니다 — 재조립, 청크 해제, gzip 해제, JSON 예쁘게 출력 포함.
pip install capstone pyelftools
# 바이너리 스캔 및 모니터 생성 (또는 .apk 전달 가능)
python3 flutter_http_monitor.py path/to/libflutter.so -o monitor.js
# 앱에 대해 실행
frida -U -f com.target.app -l monitor.js
선택 사항으로, Frida REPL에서 addScope('api.example.com')를 사용하여 특정 호스트만 모니터링할 수 있습니다 (Burp 스타일 스코프). 단일 파일 — 추가로 배포할 것이 없습니다.
이 도구는 허가된 보안 연구 및 침투 테스트만을 위한 것입니다.
소유하지 않거나 명시적인 서면 허가를 받지 않은 앱에 대해 사용하지 마십시오.