SSLPinDetect 是一款用于分析Android APK的工具,通过扫描反编译后的smali代码中的已知模式来检测SSL固定实现。它帮助安全研究人员和渗透测试人员高效识别移动应用中使用的SSL固定机制。
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固定模式的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固定模式:
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提升到更高水平了吗?贡献您的想法、改进或提出问题,让这个工具变得更强大!让我们一起创造令人惊叹的东西!
