Drushyagowda17/SkillCraft-Technology-Basic-Antivirus-Simulation
GitHub: Drushyagowda17/SkillCraft-Technology-Basic-Antivirus-Simulation
一个基于机器学习的教育用反病毒模拟器,用于通过静态分析检测Windows PE文件中的恶意软件。
Stars: 0 | Forks: 0
# AV-ML — 基于机器学习的反病毒模拟
## 下载 / 克隆
```
git clone https://github.com/Drushyagowda17/SkillCraft-Technology-Basic-Antivirus-Simulation.git
cd SkillCraft-Technology-Basic-Antivirus-Simulation
```
## 数据集
本项目使用 **Kaggle 上的一个免费公共恶意软件检测数据集**。
数据集来源:
https://www.kaggle.com/datasets/ann6667gyq/malware-detection-data
# 快速开始
## 1. 安装依赖
```
pip install -r requirements.txt
```
## 2. 运行仪表板
```
python app.py
```
打开:
```
http://127.0.0.1:5000
```
## 3. 运行命令行扫描器
```
python scanner.py test_folder --quarantine --algorithm sha256
```
# 项目概述
AV-ML 是一个基于 Python 的反病毒模拟程序,它使用**机器学习**将 Windows 可执行文件(**PE 文件**)分类为**恶意软件**或**良性软件**。
扫描器不执行文件,而是通过**静态分析**从 PE 头部提取结构信息,并通过训练好的**随机森林分类器**预测威胁。
检测到的威胁可选择性地移动到隔离目录,并且每次扫描都会生成报告。
# 功能特性
- 基于机器学习的恶意软件检测
- 静态 PE 头部分析(无文件执行)
- 随机森林分类
- 置信度分数预测
- 文件隔离支持
- Flask Web 仪表板
- 扫描历史报告
- 命令行扫描支持
- PE / 非 PE 文件识别
- 安全的教育用恶意软件分析工作流
# 工作原理
```
Select Folder
↓
Read Files
↓
Check PE Structure
↓
Extract 77 Features
↓
Run ML Prediction
↓
SAFE / THREAT
↓
Generate Report
↓
Optional Quarantine
```
# 检测流水线
```
Stage 1 → Parse File
Open executable
Validate MZ + PE signature
↓
Stage 2 → Feature Extraction
Extract:
• DOS Header
• COFF Header
• Optional Header
• Section Statistics
• Entropy
• Import Heuristics
↓
Stage 3 → Machine Learning
Random Forest Model
↓
Predict:
SAFE
or
THREAT
↓
Stage 4 → Response
Generate report
Move file to quarantine
```
# 技术栈
## 后端
- Python
- Flask
## 机器学习
- Scikit-learn
- 随机森林分类器
- Pandas
- NumPy
## 安全概念
- 静态恶意软件分析
- PE 解析
- 香农熵
- 特征工程
- 隔离逻辑
# 项目结构
```
antivirus/
├── scanner.py
│
├── app.py
│
├── model.pkl
│
├── model_features.json
│
├── reduced_dataset_2000.csv
│
├── requirements.txt
│
├── EXPLANATION.md
│
├── templates/
│ └── index.html
│
├── test_folder/
│ ├── safe_program.exe
│ ├── malware_sample.exe
│ ├── safe_notes.txt
│ ├── invoice.pdf
│ └── script.py
│
├── quarantine/
│
└── reports/
```
# 核心概念
## PE (可移植可执行文件)
Windows 可执行文件格式:
```
.exe
.dll
.sys
```
扫描器分析内部 PE 元数据,而不是运行文件。
## 特征提取
模型提取 **77 个特征**,包括:
- DOS 头部值
- COFF 头部值
- 可选头部字段
- 节区熵
- 导入统计信息
- 文件特性
## 随机森林分类
训练好的模型进行预测:
```
Malware Probability
↓
< 55%
SAFE
≥ 55%
THREAT
```
置信度分数显示在扫描结果中。
# 示例输出
```
File: malware.exe
PE File: YES
Confidence: 92.3%
Status:
THREAT
Action:
Moved to quarantine
```
# API 端点
## 扫描文件夹
```
POST /api/scan
```
## 模型信息
```
GET /api/model
```
## 报告
```
GET /api/reports
```
## 隔离
```
GET /api/quarantine
```
# 模型信息
| 属性 | 值 |
|---|---|
| 算法 | 随机森林 |
| 特征数量 | 77 |
| 数据集 | Kaggle 恶意软件数据集 |
| 检测方式 | 静态分析 |
| 需要执行 | 否 |
# 局限性
- 仅支持 PE 文件
- 仅限静态分析
- 无沙箱执行
- 无云信誉
- 训练数据集规模有限
# 学习成果
本项目演示了:
- 反病毒基础
- 恶意软件分析概念
- 机器学习工作流
- PE 文件解析
- 安全自动化
- Flask API 开发
# 文档
完整的技术说明:
```
EXPLANATION.md
```
# 免责声明
本项目仅为教育和实习目的创建。
它不能可靠地检测真实世界的恶意软件,不应被用作生产环境的反病毒软件。
标签:Apex, Conpot, Flask Web应用, PE文件, Python项目, Web仪表板, Windows安全, 云安全监控, 开源安全工具, 扫描报告, 教育项目, 数据科学应用, 文件隔离, 机器学习, 杀毒模拟, 特征提取, 网络安全, 逆向工具, 逆向工程平台, 随机森林分类器, 隐私保护, 静态分析