shjoonfahad/Android-Malware-Detection
GitHub: shjoonfahad/Android-Malware-Detection
基于静态分析和软件工程指标,结合多种机器学习算法实现 Android 恶意软件自动化检测与分类的项目。
Stars: 0 | Forks: 0
# 🤖 使用 SEMetrics 进行 Android 恶意软件检测
一个基于机器学习的 Android 恶意软件检测项目,使用静态分析和软件工程指标。
## 📌 项目概述
本项目使用静态分析技术和软件工程指标分析 Android APK 文件,以区分恶意应用程序和良性应用程序。
该项目自动化了特征提取、数据集生成、机器学习分类以及使用多种分类器进行的性能评估。
## ✨ 功能
- Android APK 静态分析
- 软件指标提取
- 自动化特征处理
- 恶意软件分类
- 机器学习评估
- ROC 曲线分析
- WEKA 验证
- 批量 APK 处理
## 🛠 使用的技术
- Python
- Java
- SEMetrics
- DroidASAT
- Scikit-learn
- Pandas
- NumPy
- Matplotlib
- WEKA
## 📊 机器学习算法
- Random Forest
- Decision Tree
- K-Nearest Neighbors (KNN)
- Naive Bayes
- AdaBoost
- Multi-Layer Perceptron (MLP)
## 📂 工作流程
1. 收集 Android APK 样本。
2. 使用 DroidASAT 提取软件工程指标。
3. 生成 CSV 数据集。
4. 聚合提取的特征。
5. 训练多个机器学习模型。
6. 使用 ROC 曲线和 WEKA 评估模型性能。
## 📈 结果
### ROC 曲线

### WEKA 验证

### APK 特征提取

### 总结
- 静态分析成功完成。
- 软件指标自动提取。
- 评估了多个机器学习模型。
- Random Forest 取得了最佳的整体性能。
- 生成 ROC 曲线用于模型评估。
- 使用 WEKA 进行分类器验证。
## 📄 项目报告
完整的技术报告包含在此代码库中。
📄 **Android_Malware_Detection_Report.pdf**
## 📁 项目结构
```
Android-Malware-Detection/
│
├── images/
├── samples/
├── out/
├── Classify.py
├── SEMetrics.py
├── export_CSVs.py
├── run.bat
├── DroidASAT.jar
├── combined.csv
├── Android_Malware_Detection_Report.pdf
└── README.md
```
## 🚀 未来改进
- 深度学习模型
- 动态恶意软件分析
- 额外的 Android 特征
- 实时恶意软件检测
- Web 仪表板
## 👩💻 作者
**Shujun Alsaif**
信息安全专业毕业生
海尔大学
LinkedIn:
https://www.linkedin.com/in/shujun-alsaif
GitHub:
https://github.com/shjoonfahad
标签:Android恶意软件检测, Apex, JS文件枚举, Scikit-learn, 云安全监控, 机器学习, 特征提取, 软件度量, 逆向工具, 静态分析