
SSLPinDetect는 디컴파일된 코드에서 알려진 패턴을 스캔하여 SSL 핀닝 구현을 감지하는 Android APK 분석 도구입니다. 보안 연구원과 침투 테스터가 모바일 애플리케이션에 사용된 SSL 핀닝 메커니즘을 식별하는 데 도움을 줍니다.
SSLPinDetect는 디컴파일된 smali 코드에서 알려진 패턴을 스캔하여 SSL Pinning 구현을 탐지하는 Android APK 분석 도구입니다. 보안 연구원과 침투 테스터가 모바일 애플리케이션에 사용된 SSL Pinning 메커니즘을 효율적으로 식별할 수 있도록 도와줍니다.
git clone https://github.com/aancw/SSLPinDetect
cd SSLPinDetect
pip install -r requirements.txt
python sslpindetect.py -f <apk_path> -a <apktool_path> -p <pattern_file> [-v]
-f, --file (필수): APK 파일의 경로입니다.-a, --apktool (필수): apktool jar 파일의 경로입니다.-p, --pattern (선택): SSL Pinning 패턴이 포함된 JSON 파일의 경로입니다 (기본값: patterns.json).-v, --verbose (선택): 상세 로깅을 활성화합니다.✅ 1. 기본 사용법 (상세 모드 및 사용자 지정 패턴 없이):
python sslpindetect.py -f app.apk -a apktool.jar
🔍 2. 상세 모드 활성화 (자세한 출력을 위해):
python sslpindetect.py -a apktool_2.11.0.jar -f sample/app-release.apk -v
Processing APK...
APK successfully decompiled.
Scanning Smali Files: 100%|█████████████████████| 100/100 [00:05<00:00, 19.76it/s]
Pattern Matched: 5
Total Patterns Matched: 5
Pattern detected: OkHttp Certificate Pinning
- smali/com/example/app/MainActivity.smali
[Line 45]: invoke-static {v0}, Lcom/squareup/okhttp/CertificatePinner;->check(Ljava/lang/String;)V
🛠️ 3. 사용자 지정 SSL Pinning 패턴 사용:
python sslpindetect.py -f app.apk -a apktool.jar -p custom_patterns.json
patterns.json)최신 패턴 파일 다운로드: smali-sslpin-patterns
patterns.json 파일 예시
{
"OkHttp Certificate Pinning": [
"Lcom/squareup/okhttp/CertificatePinner;",
"Lokhttp3/CertificatePinner;",
"setCertificatePinner"
],
"TrustManager Override": [
"Ljavax/net/ssl/X509TrustManager;",
"checkServerTrusted"
]
}
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다.
🚀 SSLPinDetect를 다음 단계로 끌어올릴 준비가 되셨나요? 아이디어를 기여하고, 개선 사항을 제안하거나, 이슈를 등록하여 이 도구를 더욱 강력하게 만드세요! 함께 멋진 것을 만들어 봅시다!
