Ahmedraza0725/Malware_classifier
GitHub: Ahmedraza0725/Malware_classifier
基于机器学习的桌面端恶意文件分类与风险评分工具,支持 PE、PDF、Office 等多格式的静态特征提取与自动分类。
Stars: 0 | Forks: 0
# 🦠 MALWARE-CLASSIFIER
### 基于 ML 的文件风险评分 — GUI 版
*特征提取 → 训练 → 评估 → 预测,支持 PE、PDF、Office、脚本和通用文件 — 封装在专业的 Tkinter 桌面应用程序中。*





## 📖 关于
**Malware-Classifier** 是一款教育性质的机器学习工具,演示了静态文件风险评分的完整 pipeline:从文件中提取 byte 级和结构化特征,在标记数据上训练多个 ML 模型,对它们进行评估,并使用表现最佳的模型将未见过的文件分类为 **Benign**(良性)、**Caution**(可疑)或 **Malicious**(恶意)。
与仅针对 PE 的工具不同,它使用 **通用特征 schema**,因此可以有意义地分析 PE 可执行文件、PDF、Office 文档、脚本、归档文件和通用文件 — 所有这些都通过一个统一的模型完成。
## ✨ 特性
| 类别 | 详情 |
|---|---|
| 🧠 **多模型引擎** | Random Forest、Logistic Regression、SVM 和 Neural Network (MLP) — 自动选择最佳验证表现者 |
| 🗂️ **通用特征 Schema** | 28 个特征,涵盖熵、可打印字符/空字符比例、可疑关键词、URL/IP 以及特定格式的结构(PE/PDF/Office) |
| 📦 **多格式支持** | PE(`.exe/.dll/.sys/...`)、PDF、Office(`.docx/.xlsx/.pptx` + 宏变体)、脚本(`.js/.vbs/.ps1/.bat/...`)、归档文件和通用文件 |
| 🔎 **PE 深度检测** | 区段数量、导入/导出、数字签名存在情况、TLS 回调(通过 `pefile`) |
| 📄 **PDF 启发式** | 嵌入式 JavaScript、自动打开/启动操作、嵌入文件和对象计数 |
| 📝 **Office 启发式** | VBA 宏存在情况、嵌入对象计数、外部链接计数 |
| 🖥️ **专业 GUI** | 带选项卡的 Tkinter 界面 — 训练模型、评估、目录扫描、关于 |
| 📊 **目录扫描器** | 递归扫描文件夹,以置信度百分比将每个文件标记为 Benign/Caution/Malicious,并将结果导出为 CSV |
| 🧮 **模型评估** | 内置准确率、精确率、召回率、F1、混淆矩阵、ROC-AUC 和交叉验证 |
## 🖼️ 预览
```
┌──────────────────────────────────────────────────────────┐
│ MALWARE CLASSIFIER v3.0 │
├──────────────────────────────────────────────────────────┤
│ [ Train Model ] [ Evaluate ] [ Scan Directory ] [ About ] │
│ │
│ File Type Verdict Confidence │
│ ────────────────────────────────────────────────────── │
│ clean_script.py Script BENIGN 97.2% │
│ script_with_urls.vbs Script CAUTION 61.4% │
│ eicar_test.txt Generic MALICIOUS 99.8% │
│ │
│ Scan complete — 3 files | 1 malicious | 1 needs review │
└──────────────────────────────────────────────────────────┘
```
## 🧰 环境要求
- **Python:** 3.8+
- **Python package:** `tkinter`(通常已自带;在某些 Linux 发行版上需单独安装)
```
sudo apt install python3-tk -y # only needed on some Linux distros
```
### Python 依赖
```
numpy>=1.24.0
scikit-learn>=1.3.0
pefile>=2023.2.7
```
## 🚀 安装与使用
```
# 1. 克隆 repository
git clone https://github.com/
为数字取证社区而构建 🔐
标签:Apex, DNS 反向解析, Go语言工具, Python, Ubuntu, 云安全监控, 无后门, 机器学习, 特征提取, 逆向工具, 静态分析