
Apkx-Hunter v2.7.0
基于C语言的Android静态分析框架,用于反编译、密钥检测、端点发现、权限分析以及原生库扫描,并具备机器学习辅助的密钥分类功能。
APKX-Hunter v3.0.0 -- Debian 软件包
APKX-Hunter 亮相 Black Hat Arsenal Europe 2026
在 Black Hat Europe Arsenal 上查看 APKX-Hunter
APKX-Hunter 是一个完全用 C 编写的开源 Android 静态分析框架,专为 Android 安全评估、逆向工程、恶意软件分析、OWASP MASVS 合规扫描、漏洞赏金狩猎、APK 测试和渗透测试而构建。
该框架支持单应用和大规模 Android 应用分析,可自动提取并分析受支持的 Android 包格式,包括 APK、APKS、APKM、XAPK 和 ZIP 归档文件。借助递归多 APK 扫描、静默批处理模式和有条理的扫描输出,APKX-Hunter 旨在高效处理单个应用以及大型 Android 应用集合,同时生成干净、结构化且可操作的结果。
APKX-Hunter 结合了多种静态分析技术——包括反编译、AndroidManifest 分析、权限分析、导出组件检测、端点发现、硬编码密钥检测、云配置发现、原生库检测以及 OWASP MASVS 安全检查——以揭示 Android 应用内部与安全相关的信息。
APKX-Hunter 还提供集成的交互式命令行 shell,为研究人员提供专用的框架界面,用于运行分析操作、配置扫描模式、导航项目工作流,并直接从终端与 APKX-Hunter 交互。Shell 功能包括命令历史记录、交互式命令处理、扫描控制以及框架级命令,旨在让重复的分析工作流更快、更高效。
该框架包含一个代码搜索与调查引擎,用于分析反编译和提取出的应用源代码。研究人员可以在项目目录中递归搜索特定的代码模式或字符串,从而更轻松地调查可疑实现、追踪安全敏感功能、识别易受攻击的模式,并快速浏览大型反编译代码库。
APKX-Hunter 还集成了一个轻量级的基于机器学习的密钥分类引擎,完全用 C 编写,可自动按置信度和严重程度对检测到的密钥进行分类。这有助于减少误报并加速漏洞分类处理。
该框架在整个分析过程中生成有条理且结构化的输出文件,将相关发现和安全结果分离到清晰的类别中,以便于调查、报告和进一步分析。每次扫描结束时,APKX-Hunter 都会生成详细的扫描统计信息,包括扫描的 APK 数量、分析的文件数量、检测到的密钥数量、检测到的模式数量以及 MASVS 发现,为研究人员提供整个安全评估的全面概览。
APKX-Hunter 被设计为一个完整的 Android 静态分析工作流——从应用提取和自动发现到手动代码调查和安全分类。
- GitHub: https://github.com/SyscallX-18113/Apkx-Hunter
- 开发者: SyscallX-18113
- 版本: v3.0.0

OWASP MASVS 扫描支持
Apkx-Hunter 现已包含 OWASP MASVS 安全扫描,涵盖 15 个类别和 100 个检测模式:
| # | 类别 | 模式数 |
|---|---|---|
| 1 | 弱加密 | 18 |
| 2 | 证书固定 | 6 |
| 3 | Root 检测 | 7 |
| 4 | 反调试 | 6 |
| 5 | 防篡改 | 4 |
| 6 | SharedPreferences | 9 |
| 7 | SQLite | 3 |
| 8 | 外部存储 | 5 |
| 9 | 动态代码加载 | 3 |
| 10 | 反射 | 2 |
| 11 | 运行时命令执行 | 4 |
| 12 | WebView 安全 | 14 |
| 13 | 网络安全 | 10 |
| 14 | SSL 验证 | 5 |
| 15 | 原生库加载 | 4 |
| 总计 | 100 |
OWASP 验证
APKXHunter 已针对 OWASP UnCrackable Level 4 应用程序进行测试。扫描成功识别出多个安全发现,证明了其 OWASP MASVS 扫描引擎和 Android 静态分析能力的有效性。

功能特性
- 支持 OWASP MASVS — Apkx-Hunter 现已包含全面的 OWASP MASVS 安全扫描,涵盖 14+ 个类别和 100 个检测模式:
- JADX 反编译 — 快速和深度反编译模式
- APKTool 反编译 — 基于 APKTool 的完整反编译和扫描
- 归档文件提取 — 支持 APK、APKM、APKS、XAPK 和 ZIP 格式
- 反编译文件夹扫描 — 扫描任何已反编译的 JADX 源代码目录
- APKTool 文件夹扫描 — 扫描任何已反编译的 APKTool 目录
- 密钥检测 — 发现 API 密钥、令牌、密码和嵌入的密钥
- 端点发现 — 识别 URL、端点及安全相关模式
- Android 权限分析 — 分析权限和导出的活动
- 原生(.so)库检测 — 检测应用中捆绑的原生库
- 文件清单生成 — 生成完整的文件清单报告
- 基于机器学习的密钥分类 (重点功能) — 对检测到的密钥进行 ML 辅助置信度评分,以加速分类并减少密钥发现中的误报
- 递归多 APK 扫描 — 自动递归扫描多个 APK,用于大规模 Android 应用分析
- 自动包提取 — 自动从 APKS、APKM、XAPK 和 ZIP 包格式中提取并分析 APK
- 静默批处理模式 — 在大规模扫描期间提供更简洁的终端输出,同时保留分析结果
- 扫描结束统计 — 显示详细的扫描摘要,包括已扫描的 APK、已分析的文件、检测到的密钥、检测到的模式以及 MASVS 发现
- 增强的命令行界面 — 改进的参数解析、输入验证和用户友好的错误报告
- 改进的框架稳定性 — 增强的错误处理、内存管理和整体框架可靠性
- Shell 集成 — 新增集成的交互式框架 Shell,支持命令历史、扫描控制和框架级命令
- 代码搜索与调查 — 新增递归源代码搜索,支持文件路径、行号、匹配行及周围代码上下文
- 分类的 MASVS 发现 — 将 MASVS 安全发现组织到专门的类别中,便于分析和报告
- 终端模式下无输出 — 扫描期间不在终端打印任何发现或输出。
机器学习模型
APKXHunter 使用离线机器学习分类器。model.bin 仅包含用于计算检测到的密钥置信度评分的已训练数值权重。
它不可执行。
它不包含任何代码。
它仅作为二进制数据加载。
- 离线 ML 推理 — 所有模型推理均在本地运行,无需云 API 或互联网连接
- 置信度概率评分 — 每个检测到的密钥都会从训练模型获得一个置信度概率
项目统计
- 语言:C
- 代码库:6,700+ 行
- 架构:模块化
- 平台:Linux
平台支持
- Linux(支持)
- Windows(不支持)
- macOS(不支持)
性能
以下结果基于开发期间执行的测试。
| 指标 | 测试值 |
|---|---|
| 操作系统 | Kali Linux |
| 用于测试的内存 | 8 GB |
| CPU | Intel Core i3-2120 |
| 成功反编译或扫描的最大 APK | 85 MB |
| 平均反编译时间 | ~50 - 60 秒 |
系统要求
最低要求:
- Linux
- 4 GB 内存
- JADX
- APKTool
- unzip
推荐配置:
- Linux
- 8 GB 或更高内存
- 四核 CPU
- SSD 存储
ML 密钥分类
APKXHunter 集成了一个轻量级的基于机器学习的密钥分类引擎,完全用 C 编写,作为其密钥检测工作流的一部分。这是一个统计机器学习模型——不是大型语言模型、ChatGPT、生成式 AI 或深度学习系统。
- APKXHunter 检测到的密钥由集成的机器学习分类引擎进行分析。
- 该模型估计检测到的密钥有效或具有安全敏感性的概率。
- 发现项使用基于置信度的严重性评分进行优先级排序。
- ML 引擎帮助研究人员更快地对发现项进行分诊。
- ML 引擎旨在辅助人工分析,而非取代手动验证。
工作原理
- 检测潜在密钥。
- 提取统计特征(熵、字符分布、长度、大写/小写比例、数字、符号及其他统计令牌特征)。
- 加载训练好的模型(
model.bin)。 - 执行 ML 推理。
- 生成置信概率。
- 将结果呈现给用户进行手动验证。
安全说明
所有机器学习推理均在训练好的 model.bin 文件上本地执行。APKXHunter 不会将扫描数据、检测到的密钥或任何其他分析输出传输到外部——不使用云 API,ML 推理也不需要互联网连接。
Shell 命令
| 命令 | 用法 |
|---|---|
help | 显示可用命令 |
run | 执行 APKX-Hunter 分析 |
clear | 清空终端 |
banner | 显示 APKX-Hunter 横幅 |
exit | 退出框架 |
run search <folder> <string> | 递归搜索和调查代码 |
run <apk_file/folder> [options] | 运行分析扫描 |
安装
Debian / Kali / Ubuntu
安装 Debian 软件包:
sudo dpkg -i apkx-hunter_3.0.0-1_amd64.deb
依赖管理:自动检查并安装 JADX、Apktool、Java 及其他所需工具。
run install-dependencies
用法
USAGE
run <package/folder> [options] [options]
通用选项
| 标志 | 描述 |
|---|---|
help | 显示帮助信息。 |
扫描模式
JADX 的扫描模式
| 标志 | 描述 |
|---|---|
fast | 执行快速的 jadx 反编译并扫描提取的文件夹。 |
deep | 执行完整的深度 jadx 反编译并扫描提取的文件夹。 |
注意: 仅在提供 apk 文件名后使用这些标志
示例:
run app.apk fast
APKTool 的扫描模式
| 标志 | 描述 |
|---|---|
apktool | 执行 apktool 反编译并扫描提取的文件夹。 |
注意: 仅在提供 apkfile 名称后使用这些标志
示例:
run app.apk apktool
从文件夹进行多 APK 扫描模式
| 标志 | 描述 |
|---|---|
multi-apk | 执行多 APK 反编译并扫描提取的文件夹。 |
注意: 仅在提供 apk_files_folder 名称后使用这些标志 示例:
run Apks multi-apk
APK 包扫描模式:
| 标志 | 描述 |
|---|---|
extract-multi-apk | 提取包(APKS/APKM/XAPK/ZIP)并自动分析每个提取出的 APK。 |
注意: 仅在提供 apk_package_file 名称后使用这些标志
示例:
run test.apkm extract-multi-apk
文件夹扫描
| 标志 | 描述 |
|---|---|
folder-scan | 扫描已反编译的 JADX 源代码目录或任意目录 |
apktool-folder-scan | 扫描已反编译的 Apktool 目录——仅当扫描由 APKTOOL 反编译的 apk 文件夹时使用此标志。 |
注意: 仅在 folder_name 之后使用这些标志进行扫描
示例:
apkxhunter <folder_name> folder-scan
apkxhunter <folder_name_decompiled_by_apktool> apktool-folder-scan
apkxhunter <folder_name> folder-scan secrets
apkxhunter <folder_name> folder-scan masvs
apkxhunter <folder_name> folder-scan permissions
apkxhunter <folder_name_decompiled_by_apktool> apktool-folder-scan secrets
apkxhunter <folder_name_decompiled_by_apktool> apktool-folder-scan files
独立扫描器
| 标志 | 描述 |
|---|---|
secrets | 扫描 API 密钥、令牌、密码及其他嵌入的机密信息。 |
permissions | 分析 Android 权限或导出的 activity。 |
endpoints | 发现 URL、端点和模式。 |
files | 生成文件清单报告,并提取 .so 名称文件。 |
masvs | OWASP MASVS 扫描。 |
注意: 仅在扫描模式标志或文件夹分析标志之后使用这些标志
示例:
run app.apk deep secrets
run Apks_folder deep multi-apk secrets
run test.apkm extract-multi-apk secrets
run app.apk deep masvs
代码调查
| 标志 | 描述 |
|---|---|
search | 在给定的反编译文件夹或任意文件夹中查找给定字符串,或进行代码调查 |
示例:
run search <Folder_name> <Search String>
终端模式下无输出
| 标志 | 描述 |
|---|---|
quiet | 不在终端打印任何发现或输出。 |
示例:
run <apk> <options> quit\n"
仅反编译
| 标志 | 描述 |
|---|---|
decompile | 使用 JADX 或 APKTOOL 反编译 APK —— 反编译后不运行文件夹扫描 |
注意: 仅在扫描模式标志之后使用这些标志
示例:
run app.apk deep decompile
run app.apk apktool decompile
归档解压
| 标志 | 描述 |
|---|---|
extract | 在分析前解压受支持的 Android 包,并将解压后的 apk 保存到文件夹 extracted_output_<apk_name>。 |
支持的格式: APK、APKM、APKS、XAPK、ZIP
示例:
run app.apkm extract