mal404/APKGuard

GitHub: mal404/APKGuard

一款全自动化的 Android APK 恶意软件分析工具包,集成反编译、多维度威胁检测与评分、批量处理和多格式报告生成于一体。

Stars: 0 | Forks: 0

# APKGuard v1.0 **高级 Android APK 恶意软件分析工具包** APKGuard 是一款全自动化、基于命令行的 APK 恶意软件分析工具,能够反编译 Android 应用程序、扫描恶意软件特征、检测加密货币挖矿程序、间谍软件、勒索软件、木马程序,并生成多种格式的专业报告。它支持单 APK 和批处理(多任务)模式,并支持并行线程。 ## 功能特性 | 特性 | 描述 | |---|---| | **自动反编译** | 使用 `apktool`(资源 + smali)和 `jadx`(Java 源码),并自带回退至 ZIP 解压机制 | | **自动安装依赖** | 在缺失时自动下载并安装 `apktool`、`jadx` 和 Python 包 | | **权限分析** | 标记危险权限,检测恶意权限组合(短信木马、银行木马、间谍软件、勒索软件、Dropper、加密货币挖矿程序) | | **代码模式扫描** | 基于正则表达式扫描 smali 和 Java 源码,覆盖 13 个类别的 150 多个恶意软件特征 | | **加密货币挖矿程序检测** | 检测矿池 URL、钱包地址(BTC、ETH、XMR)、挖矿库和挖矿相关字符串 | | **间谍软件检测** | 识别数据渗出 API、键盘记录器模式、无障碍服务滥用、剪贴板监控 | | **勒索软件检测** | 标记带有勒索特征的加密 API、设备管理器滥用、文件系统加密模式 | | **混淆分析** | 检测加壳、代码混淆、反射 API 滥用、动态代码加载 | | **熵值分析** | 对 DEX 文件和原生库进行香农熵计算,以检测加壳/加密的载荷 | | **证书分析** | 检查调试证书、自签名证书和证书异常 | | **网络 IOC 提取** | 提取 URL、IP 地址、域名、可疑端口、C2 指标 | | **已知恶意软件匹配** | 匹配已知的恶意软件包名、RAT 家族和可疑的命名模式 | | **VirusTotal 集成** | 针对 VirusTotal 的可选哈希查询(需要 API 密钥) | | **深度分析模式** | 隐藏 DEX 检测、嵌入式 APK 发现、反射使用分析 | | **多格式报告** | 终端(彩色)、HTML(暗色主题仪表盘)、JSON(机器可读) | | **批处理模式** | 使用并行线程分析整个目录中的 APK | | **威胁评分** | 0-100 的威胁评分,包含加权发现项和自动判定 | ## 安装说明 ### 前置条件 APKGuard 需要 **Python 3.8+** 和 **Java 11+**。所有其他依赖将在首次运行时自动安装。 ### 快速开始 ``` # Clone 或复制该工具 git clone apk-malware-analyzer cd apk-malware-analyzer # 赋予可执行权限 chmod +x apkguard.py # 运行(首次使用时自动安装依赖项) python3 apkguard.py -t target.apk ``` ### 手动安装依赖(可选) ``` # Java(必需) sudo apt install default-jre-headless # Python 包 pip3 install androguard lxml # apktool 和 jadx 会在首次运行时自动下载到 ./tools/ 目录 ``` ## 运行说明 ### 单个 APK 分析 ``` # 基础分析(终端输出) python3 apkguard.py -t suspicious.apk # 生成 HTML 报告 python3 apkguard.py -t suspicious.apk -o html # 生成 JSON 报告 python3 apkguard.py -t suspicious.apk -o json # 生成所有报告格式 python3 apkguard.py -t suspicious.apk -o all # 深度分析模式(速度较慢,更详尽) python3 apkguard.py -t suspicious.apk -o all --deep # 使用 VirusTotal 查询 python3 apkguard.py -t suspicious.apk --vt YOUR_VT_API_KEY # 保留反编译文件以供手动检查 python3 apkguard.py -t suspicious.apk --keep-decompiled # 详细输出 python3 apkguard.py -t suspicious.apk -v ``` ### 批处理模式(多任务) ``` # 分析目录中的所有 APK python3 apkguard.py -t /path/to/apk_folder/ -m # 使用 8 个并行线程批处理并生成 HTML 报告 python3 apkguard.py -t /path/to/apk_folder/ -m --threads 8 -o html # 使用所有报告格式批处理 python3 apkguard.py -t /path/to/apk_folder/ -m -o all # 自定义输出目录 python3 apkguard.py -t /path/to/apk_folder/ -m --output-dir /path/to/reports/ ``` ## 命令行参数 | 开关 | 简写 | 描述 | |---|---|---| | `--target` | `-t` | **必填。** 目标 APK 文件或目录(用于批处理模式) | | `--output` | `-o` | 报告格式:`terminal`、`html`、`json` 或 `all`(默认:`terminal`) | | `--multi` | `-m` | 启用批处理模式,用于分析目录中的多个 APK | | `--threads` | | 批处理模式的并行线程数(默认:4) | | `--deep` | | 启用深度分析:隐藏 DEX、嵌入式 APK、混淆评分 | | `--vt` | | 用于哈希查询的 VirusTotal API 密钥 | | `--output-dir` | | 报告的自定义输出目录(默认:`./output/`) | | `--keep-decompiled` | | 分析后在 `./work/` 中保留反编译文件 | | `--verbose` | `-v` | 启用详细/调试输出 | | `--quiet` | `-q` | 抑制横幅和进度输出(仍会显示分析结果) | ## 分析管道 APKGuard 按顺序运行 12 个分析模块: 1. **反编译** — apktool(smali + 资源)和 jadx(Java 源码) 2. **清单文件分析** — 包信息、SDK 版本、组件、Intent 过滤器 3. **权限分析** — 单独的危险权限 + 恶意组合检测 4. **组件分析** — 导出组件、可疑接收器、高优先级过滤器 5. **代码模式扫描** — 覆盖 13 个恶意软件类别的 150 多个正则表达式模式 6. **字符串分析** — URL、IP、电子邮件、Base64 载荷、加密钱包、API 密钥 7. **原生库分析** — 可疑的 .so 文件,用于检测加壳的熵值检查 8. **证书分析** — 调试证书、自签名证书、异常 9. **熵值分析** — DEX 文件熵值,以检测加壳/加密 10. **网络 IOC 提取** — 域名、IP、端口、C2 指标 11. **已知恶意软件匹配** — 与已知家族的包名匹配 12. **深度分析** *(可选)* — 隐藏 DEX、嵌入式 APK、反射、混淆 ## 威胁评分 分析结果将根据严重程度进行加权,从而生成 0-100 分的威胁评分: | 严重程度 | 权重 | 示例 | |---|---|---| | CRITICAL(严重) | +15 | 加密货币挖矿指标、短信诈骗、已知恶意软件匹配 | | HIGH(高危) | +8 | 可疑原生库、Shell 执行、数据渗出 API | | MEDIUM(中危) | +4 | 过度权限请求、硬编码 IP、编码载荷 | | LOW(低危) | +2 | 开机自启、唤醒锁、网络状态访问 | 针对特定组合(例如,加密钱包 + 挖矿字符串、VirusTotal 检出、已知恶意软件包名匹配)会应用**额外评分**。 | 分数范围 | 判定结果 | |---|---| | 80-100 | **MALICIOUS(恶意)** — 高置信度恶意软件 | | 60-79 | **SUSPICIOUS(可疑)** — 包含多种恶意软件特征 | | 40-59 | **MODERATE RISK(中等风险)** — 存在部分可疑行为 | | 20-39 | **LOW RISK(低风险)** — 轻微隐患 | | 0-19 | **LIKELY CLEAN(可能安全)** — 未发现重大威胁 | ## 恶意软件检测类别 APKGuard 可检测以下恶意软件类别: | 类别 | 检测指标 | |---|---| | **加密货币挖矿程序** | 矿池 URL (stratum+tcp)、钱包地址 (BTC/ETH/XMR)、挖矿库 (libxmrig, libcpuminer)、CoinHive | | **短信木马** | SmsManager API 滥用、高额扣费号码、短信拦截 | | **银行木马** | 无障碍服务滥用、覆盖攻击、钓鱼模式 | | **间谍软件** | 摄像头/麦克风访问、读取联系人/短信/通话记录、位置追踪、键盘记录 | | **勒索软件** | 加密 API + 勒索信息、设备管理器滥用、比特币支付要求 | | **RATs** | 已知 RAT 家族、C2 通信模式 | | **Droppers** | 动态代码加载、包安装、隐藏 DEX 文件 | | **广告软件** | 已知广告 SDK、激进广告库 | | **数据渗出** | 设备 ID 收集、IMEI 采集、剪贴板监控 | | **混淆恶意软件** | 加壳 DEX (高熵值)、字符串加密、反射滥用 | ## 输出示例 ### 终端输出 终端报告采用彩色输出,包含按严重程度标记的分析结果、直观的威胁评分条,以及针对权限、代码模式、网络指标等分类整理的版块。 ### HTML 报告 深色主题、响应式的 HTML 仪表盘包含: - 环形威胁评分指示器 - 严重程度统计条 - APK 元数据和哈希值 - 可排序的分析结果表 - 带有风险描述的权限分析 - 网络指标(URL、IP、域名) ### JSON 报告 具有完整分析数据的机器可读 JSON,适用于: - 集成至 SIEM 系统 - 自动化处理管道 - 数据库存储 - API 响应 ## 项目结构 ``` apk-malware-analyzer/ ├── apkguard.py # Main entry point ├── README.md # This file ├── modules/ │ ├── __init__.py │ ├── analyzer.py # Core malware analysis engine │ ├── banner.py # ASCII art and visual elements │ ├── batch_processor.py # Multi-APK parallel processing │ ├── decompiler.py # APK decompilation (apktool + jadx) │ ├── dependency_checker.py # Auto-install dependencies │ ├── reporter.py # Report generation (terminal, HTML, JSON) │ ├── signatures.py # Malware signature database │ └── utils.py # Utilities (colors, logging, hashing) ├── tools/ # Auto-downloaded tools (apktool, jadx) ├── work/ # Temporary decompilation workspace └── output/ # Generated reports ``` ## 许可证 本工具仅供**教育和授权的安全研究目的**使用。在分析非您所有的 APK 之前,请务必获取适当的授权。作者对滥用行为不承担任何责任。
标签:Android安全, Apktool, APK分析, DAST, DeepSeek, Jadx, JS文件枚举, 云资产清单, 代码生成, 代码脱壳, 勒索软件检测, 威胁情报, 威胁评分, 开发者工具, 恶意软件分析, 批量分析, 指令注入, 挖矿木马检测, 木马检测, 杀毒软件/反病毒, 权限分析, 渗透测试工具, 熵值分析, 网络安全, 自动化分析, 自动化报告, 跨站脚本, 逆向工具, 逆向工程, 间谍软件检测, 隐私保护