SyscallX-18113/Apkx-Hunter
GitHub: SyscallX-18113/Apkx-Hunter
一款纯 C 编写的 Android 静态分析框架,结合反编译与本地机器学习机密分类,帮助安全研究人员自动化发现并评估 APK 中的敏感信息。
Stars: 50 | Forks: 5
# APKXHunter
**APKXHunter** 是一个完全使用 **C** 语言编写的 Android 静态分析框架,专为 Android 安全评估、逆向工程、漏洞赏金狩猎、恶意软件分析和渗透测试而构建。
它结合了多种静态分析技术 —— 反编译、机密检测、端点发现、权限分析和原生库检测 —— 以揭露 Android 应用程序内的敏感信息,同时为安全研究人员生成清晰、有条理的报告。
APKXHunter 还集成了一个完全使用 C 语言编写的轻量级**基于机器学习的机密分类引擎**,该引擎会根据置信度和严重程度自动对检测到的机密进行分类,帮助研究人员确定发现的优先级,而无需手动审查每个结果。
🔗 **GitHub:** https://github.com/SyscallX-18113/Apkx-Hunter
👤 **开发者:** SyscallX-18113
🏷️ **版本:** v1.0.0
## ✨ 功能
- 🔍 **JADX 反编译** — 快速和深度反编译模式
- 🛠️ **APKTool 反编译** — 完全基于 APKTool 的反编译和扫描
- 📦 **归档文件解压** — 支持 APK, AAB, APKM, APKS, XAPK 和 ZIP 格式
- 📁 **反编译文件夹扫描** — 扫描任何已反编译的 JADX 源代码目录
- 📁 **APKTool 文件夹扫描** — 扫描任何已反编译的 APKTool 目录
- 🔑 **机密检测** — 发现 API 密钥、令牌、密码和嵌入的机密
- 🌐 **端点发现** — 识别 URL、端点和安全相关模式
- 🔐 **Android 权限分析** — 分析权限和导出的 Activity
- 📚 **原生(.so)库检测** — 检测应用程序中捆绑的原生库
- 🗂️ **文件清单生成** — 生成完整的文件清单报告
- 🤖 **基于机器学习的机密分类** *(核心功能)* — 对检测到的机密进行机器学习辅助的置信度评分,以加速分流
- 📡 **离线 ML 推理** — 所有模型推理均在本地运行,无需云 API 或互联网连接
- 📊 **置信度概率评分** — 每个检测到的机密都会从训练好的模型中获得一个置信度概率
- 🧮 **特征提取引擎** — 从每个检测到的机密中提取统计特征(熵、字符分布、长度、大小写比例、数字、符号)
## ⚙️ 安装
APKXHunter 附带了一个自动安装程序,该程序会检查并仅安装您系统上缺失的依赖项。
```
chmod +x install.sh
./install.sh
```
`install.sh` 会自动检查并安装所需的依赖项 —— 它**不会**重新安装您系统上已有的任何内容。
## 🚀 用法
```
USAGE
./apkxhunter [options] [options]
```
### 常规选项
| 标志 | 描述 |
|------|-------------|
| `-h` | 显示帮助信息。 |
## 🎯 扫描模式
### JADX 的扫描模式
| 标志 | 描述 |
|------|-------------|
| `--fast` | 执行快速的 jadx 反编译并扫描提取的文件夹。 |
| `--deep` | 执行完全深度的 jadx 反编译并扫描提取的文件夹。 |
**示例:**
```
./apkxhunter app.apk --fast
./apkxhunter app.apk --deep
```
### APKTool 的扫描模式
| 标志 | 描述 |
|------|-------------|
| `--apktool` | 执行 apktool 反编译并扫描提取的文件夹。 |
**示例:**
```
./apkxhunter app.apk --apktool
```
## 📁 文件夹扫描
| 标志 | 描述 |
|------|-------------|
| `--folder-scan` | 扫描已反编译的 JADX 源代码目录或任何目录 |
| `--apktool-folder-scan` | 扫描已反编译的 Apktool 目录 —— 此标志仅用于扫描由 APKTOOL 反编译的 apk 文件夹。 |
**示例:**
```
./apkxhunter --folder-scan
./apkxhunter --apktool-folder-scan
./apkxhunter --folder-scan --secrets
./apkxhunter --folder-scan --permissions
./apkxhunter --apktool-folder-scan --secrets
./apkxhunter --apktool-folder-scan --files
```
## 🧩 单项扫描器
| 标志 | 描述 |
|------|-------------|
| `--secrets` | 扫描 API 密钥、令牌、密码和其他嵌入的机密。 |
| `--permissions` | 分析 Android 权限或导出的 Activity。 |
| `--endpoints` | 发现 URL、端点和模式。 |
| `--files` | 生成包含 .so 名称文件提取的文件清单报告。 |
**示例:**
```
./apkxhunter app.apk --deep --secrets
./apkxhunter app.apk --deep --permissions
./apkxhunter app.apk --deep --endpoints
./apkxhunter --folder-scan --secrets
./apkxhunter --folder-scan --permissions
./apkxhunter --apktool-folder-scan --endpoints
./apkxhunter app.apk --deep --files
```
## 📄 仅反编译
| 标志 | 描述 |
|------|-------------|
| `--decompile` | 使用 JADX 或 APKTOOL 反编译 APK —— 反编译后不运行文件夹扫描 |
**示例:**
```
./apkxhunter app.apk --deep --decompile
./apkxhunter app.apk --fast --decompile
./apkxhunter app.apk --apktool --decompile
```
## 📦 归档文件解压
| 标志 | 描述 |
|------|-------------|
| `--extract` | 在分析前解压受支持的 Android 包,并将提取的 apk 保存到文件夹 `extracted_output_` 中。 |
**支持的格式:** APK, AAB, APKM, APKS, XAPK, ZIP
**示例:**
```
./apkxhunter app.apkm --extract
```
## 🤖 ML 机密分类
APKXHunter 集成了一个完全用 C 语言编写的轻量级**基于机器学习的机密分类引擎**,作为其机密检测工作流的一部分。这是一个统计机器学习模型 —— 不是大语言模型、ChatGPT、生成式 AI 或深度学习系统。
- APKXHunter 检测到的机密将由集成的机器学习分类引擎进行分析。
- 该模型会估计检测到的机密有效或具有安全敏感性的概率。
- 发现的内容将使用基于置信度的严重性评分进行优先级排序。
- ML 引擎可协助研究人员更快地对发现进行分流。
- ML 引擎旨在辅助人工分析,而不是取代手动验证。
### ⚙️ 工作原理
1. 检测潜在的机密。
2. 提取统计特征(熵、字符分布、长度、大写/小写比例、数字、符号以及其他统计令牌特征)。
3. 加载训练好的模型 (`model.bin`)。
4. 执行 ML 推理。
5. 得出置信度概率。
6. 将结果呈现给用户以进行手动验证。
### 🔒 安全提示
所有的机器学习推理均在训练好的 `model.bin` 文件上**本地**执行。APKXHunter 不会向外传输扫描的数据、检测到的机密或任何其他分析输出 —— 不使用任何云 API,并且 ML 推理不需要互联网连接。
## 🗃️ 输出目录
### JADX 分析
```
Jadx_output_/
```
**结果报告:**
```
Result_Jadx_output_/
|- secrets_findings.txt -> Embedded API keys, tokens, secrets
|- permissions.txt -> Android permission analysis
|- pattern_findings.txt -> URLs, endpoints and security patterns
|- files.txt -> File inventory report
|- native_library_files.txt -> Detected native (.so) libraries
```
### 文件夹扫描结果
**结果报告:**
```
Folder-scan_Result_/
|- secrets_findings.txt
|- permissions.txt
|- pattern_findings.txt
|- files.txt
|- native_library_files.txt
```
### APKTool 分析
```
Apktool_output_/
```
**结果报告:**
```
Apktool_Result_/
|- secrets_findings.txt
|- permissions.txt
|- endpoint_findings.txt
|- files.txt
|- native_library_files.txt
```
### APKTOOL 文件夹扫描结果
**结果报告:**
```
Apktool-folder-scan_Result_/
|- secrets_findings.txt
|- permissions.txt
|- endpoint_findings.txt
|- files.txt
|- native_library_files.txt
```
### 归档文件解压
```
extracted_output_/
|- Extracted APK files
```
## 📑 报告文件
| 文件 | 描述 |
|------|-------------|
| `secrets_findings.txt` | 嵌入的 API 密钥、令牌、机密 |
| `permissions.txt` | Android 权限分析 |
| `pattern_findings.txt` | URL、端点和安全模式(JADX / 文件夹扫描输出) |
| `endpoint_findings.txt` | URL、端点和安全模式(APKTool 输出) |
| `files.txt` | 文件清单报告 |
| `native_library_files.txt` | 检测到的原生(.so)库 |
## 📦 支持的格式
APK, AAB, APKM, APKS, XAPK, ZIP
## 📋 环境要求
APKXHunter 依赖于以下外部工具:
- **JADX**
- **APKTool**
- **unzip**
`install.sh` 会自动检查这些依赖项,并仅安装缺失的依赖项 —— 现有的安装将保持不变。
## 💡 示例命令
```
./apkxhunter app.apk --fast
./apkxhunter app.apk --deep
./apkxhunter app.apk --apktool
./apkxhunter --folder-scan
./apkxhunter --apktool-folder-scan
./apkxhunter --folder-scan --secrets
./apkxhunter --folder-scan --permissions
./apkxhunter --apktool-folder-scan --secrets
./apkxhunter --apktool-folder-scan --files
./apkxhunter app.apk --deep --secrets
./apkxhunter app.apk --deep --permissions
./apkxhunter app.apk --deep --endpoints
./apkxhunter --apktool-folder-scan --endpoints
./apkxhunter app.apk --deep --files
./apkxhunter app.apk --deep --decompile
./apkxhunter app.apk --fast --decompile
./apkxhunter app.apk --apktool --decompile
./apkxhunter app.apkm --extract
```
## ⚠️ 免责声明
APKXHunter 仅严格用于:
- 教育目的
- 授权的渗透测试
- 防御性安全研究
用户需自行确保在分析任何应用程序之前已获得适当的授权。未经授权对您不拥有或未获得明确测试许可的应用程序或系统使用此工具可能是违法的。
标签:Android安全, Caido项目解析, DAST, 云安全监控, 云资产清单, 对抗攻击, 恶意软件分析, 敏感信息检测, 逆向工程, 静态分析