KishoreGauthaman-ai/MALWARE_DETECT
GitHub: KishoreGauthaman-ai/MALWARE_DETECT
结合 Androguard 权限分析与 YARA 规则模式匹配的 Android APK 恶意软件检测工具,通过复合风险评分引擎生成量化的威胁评估报告。
Stars: 1 | Forks: 0
# 🛡️ Android Malware Detector
一款用于分析 Android APK 文件中潜在恶意软件和间谍软件行为的桌面和 Android 应用程序。它结合了 **Androguard** 权限分析、基于 **YARA** 规则的模式匹配以及复合 **风险评分** 引擎来生成威胁评估报告——所有这些都包装在时尚的 Material Design GUI 中。
## ✨ 功能
- **APK 权限分析** — 使用 Androguard 提取并标记危险权限(SMS、相机、联系人、位置等)。
- **YARA 规则扫描** — 检测与间谍软件相关的模式,如 `sendTextMessage`、`DexClassLoader`、`Runtime.exec` 等。
- **复合风险评分** — 根据可疑权限和 YARA 匹配情况计算 0–100 的风险评分。
- **颜色编码结果** — 使用动态颜色显示风险严重程度:
- 🟢 绿色 (0–30) · 🟡 黄色 (31–60) · 🔴 红色 (61–100)
- 包名、权限和 YARA 命中结果都有各自独特的颜色编码。
- **可滚动的 Material Design GUI** — 使用 KivyMD 构建,具有可滚动布局、独立的状态和结果面板以及一键分析功能。
## 📁 PRODUCT 结构
```
Malware det/
├── main.py # KivyMD GUI application entry point
├── main.kv # Kivy layout (ScrollView + Material cards)
├── androguard_scan.py # APK permission extraction & analysis
├── yara_rules.py # YARA rule compilation & scanning
├── yara_rules.yar # YARA rule definitions for spyware detection
├── risk_scoreing.py # Risk score calculation engine
├── api.py # Unified analysis pipeline (used by GUI)
├── sample.apk # Sample APK for testing
└── README.md
```
## 🔧 技术栈
| 组件 | 技术 |
| ---------------- | ----------------------------- |
| GUI 框架 | Kivy / KivyMD |
| APK 分析 | Androguard |
| 模式匹配 | YARA (通过 `yara-python`) |
| 文件选择器 | Plyer |
| API (实验性) | FastAPI |
| 语言 | Python 3 |
## 🚀 快速开始
### 前置条件
- Python 3.8+
- pip
# 安装依赖
pip install -r requirements.txt
```
### 运行 Desktop App
```bash
python main.py
```
1. 点击 **Select APK** 选择一个 `.apk` 文件。
2. 点击 **Analyze APK** 运行分析。
3. 在专用的结果面板中查看颜色编码的结果。
## 🧠 工作原理
```
┌──────────────┐ ┌────────────────────┐ ┌─────────────────┐ ┌──────────────────┐
│ Select APK │────▶│ Androguard Scan │────▶│ Risk Scoring │────▶│ Color-Coded │
│ (.apk file) │ │ (permissions) │ │ Engine (0-100) │ │ Results Panel │
│ │────▶│ YARA Scan │ │ │ │ │
└──────────────┘ │ (pattern match) │ └─────────────────┘ └──────────────────┘
└────────────────────┘
```
### 风险评分明细
| 信号 | 最高分 | 逻辑 |
| ------------------------ | -------- | ------------------------------------------ |
| 可疑权限 | 40 | 每个危险权限 +10(最多计 4 项) |
| YARA 检测(布尔值) | 40 | 如果发现 2 个或以上间谍软件模式则 +40 |
| 额外的 YARA 匹配项 | 20 | 超出基础数量后每项匹配 +10(最多计 2 项) |
| **总计** | **100** | |
### 结果颜色编码
| 元素 | 颜色 | 十六进制 |
| ------------------------ | ----------------------------- | ----------- |
| 包名 | 紫色 | `#B388FF` |
| 风险评分(低,0–30) | 绿色 | `#00E676` |
| 风险评分(中,31–60) | 黄色 | `#FFEA00` |
| 风险评分(高,61–100) | 红色 | `#FF1744` |
| 可疑权限 | 橙色 | `#FF9100` |
| YARA 匹配项 | 青色 | `#00E5FF` |
| 错误 | 红色 | `#FF1744` |
## 🚫 追踪的危险权限
该应用程序专门用于标记以下高风险的 Android 权限:
- **SMS**: `READ_SMS`, `SEND_SMS`, `RECEIVE_SMS`
- **联系人**: `READ_CONTACTS`, `WRITE_CONTACTS`, `GET_ACCOUNTS`
- **硬件**: `RECORD_AUDIO`, `CAMERA`
- **位置**: `ACCESS_FINE_LOCATION`, `ACCESS_COARSE_LOCATION`
- **存储**: `READ_EXTERNAL_STORAGE`, `WRITE_EXTERNAL_STORAGE`
- **系统**: `PACKAGE_USAGE_STATS`, `QUERY_ALL_PACKAGES`, `RECEIVE_BOOT_COMPLETED`, `FOREGROUND_SERVICE`
## 📜 YARA 规则
包含的 `yara_rules.yar` 可检测常见的间谍软件行为:
- `sendTextMessage` / `READ_SMS` — SMS 访问
- `ContactsContract` — 收集联系人
- `MediaRecorder` — 麦克风录音
- `getLastKnownLocation` — 位置跟踪
- `Runtime.getRuntime().exec` — 执行 Shell 命令
- `DexClassLoader` — 动态加载代码
- `http://` / `https://` — 网络通信
当发现 **2 个或更多** 此类模式时,即会触发匹配。
## 🖥️ UI 概览
该应用使用具有两个主面板的 **可滚动** 布局:
| 面板 | 用途 |
| ----------------- | ------------------------------------------------ |
| **状态卡片** | 显示选中的 APK 文件名或选择提示 |
| **结果卡片** | 分析后显示颜色编码的扫描结果 |
## 📄 许可证
买家仅能使用此应用程序。他/她不得将其出售。
## 🤝 贡献
欢迎贡献代码、提出问题和功能请求!请随时开启一个 issue 或提交一个 pull request。
标签:Androguard, Android安全, KivyMD, YARA, 云安全监控, 云资产可视化, 逆向工具, 静态分析