
APKDeepLens 是一个基于 Python 的 Android APK 文件静态分析工具。它使用 JADX 反编译 APK,并执行覆盖 OWASP Mobile Top 10(2024)的深层多层安全扫描。每个发现都带有严重级别(严重/高/中/低/信息)和 OWASP 分类,结果可以导出为 JSON、HTML、PDF 或 TXT 格式。
完整的检查 ID、正则表达式模式和证据示例请参见 DETECTION.md。
要求: Python 3.10+、Java / OpenJDK
git clone https://github.com/d78ui98/APKDeepLens.git
cd APKDeepLens
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python APKDeepLens.py --help
git clone https://github.com/d78ui98/APKDeepLens.git
cd APKDeepLens
python3 -m venv venv
.\venv\Scripts\activate
pip install -r requirements.txt
python APKDeepLens.py --help
docker build -t apkdeeplens .
docker run --rm -v /path/to/apk/files:/apk apkdeeplens -apk /apk/file.apk
# 基本扫描 — 输出 JSON 报告
python APKDeepLens.py -apk app.apk
# 当源代码已提取时跳过反编译
python APKDeepLens.py -apk app.apk -source_code_path /path/to/source
# 生成 HTML 报告
python APKDeepLens.py -apk app.apk -report html
# 生成 PDF 报告
python APKDeepLens.py -apk app.apk -report pdf
# 生成纯文本报告
python APKDeepLens.py -apk app.apk -report txt
# 指定输出目录
python APKDeepLens.py -apk app.apk -report json -o /path/to/output/
# 跳过虚拟环境检查(CI/CD)
python APKDeepLens.py -apk app.apk --ignore_virtualenv
所有报告都保存在输出路径的 reports/ 子目录中。
完整的 JSON 输出模式请参见 DETECTION.md。
APKDeepLens/
├── APKDeepLens.py # 主入口
├── report_gen.py # 报告生成(JSON、HTML、PDF、TXT)
├── report_template.html # HTML 报告模板
├── requirements.txt
└── static_tools/
├── code_scanner.py # 深度代码模式安全扫描器(40+ 检查)
├── scan_android_manifest.py # Manifest 解析器 + 安全检查器
├── sensitive_info_extractor.py # 硬编码秘密 + 不安全 URL 扫描器
├── known_false_positives.txt # 精选误报过滤列表
└── utility/
└── utility_class.py # 共享常量(DANGEROUS_PERMISSIONS、util)
欢迎通过 github.com/d78ui98/APKDeepLens/issues 提交功能请求、错误报告和拉取请求。
| 类别 | 检查项 | 严重级别范围 | OWASP |
|---|
| Manifest 安全 | 10 | 严重 → 中 | M3–M9 |
| 加密 | 7 | 严重 → 中 | M1, M10 |
| WebView 安全 | 6 | 严重 → 高 | M4, M5, M7, M9 |
| SSL / TLS | 5 | 严重 → 中 | M5 |
| 动态代码执行 | 4 | 高 → 中 | M4, M7 |
| 不安全数据存储 | 6 | 高 → 低 | M4, M6, M9 |
| 日志 / 隐私 | 3 | 中 → 低 | M6 |
| Intent 安全 | 2 | 高 → 中 | M4 |
| ZIP 路径遍历 | 1 | 高 | M4 |
| 硬编码秘密 | 16+ | — | M1 |
| 不安全通信 | — | — | M5 |
| 格式 | 描述 |
|---|
| JSON(默认) | 机器可读。所有发现包含 id、severity、owasp、description 和 evidence。适合流水线集成。 |
| HTML / PDF | 颜色编码的严重级别表格 — 严重为红色,高为橙色,中为琥珀色。 |
| TXT | 人类可读,按严重级别排序的发现,包含文件位置和描述。 |