Almighty123404/MalwareAnalysis
GitHub: Almighty123404/MalwareAnalysis
一个基于 Flask 与 React 的恶意文件检测 Web 应用,通过 YARA 规则、PE 分析和可选的 VirusTotal 查询对上传文件进行静态判定。
Stars: 0 | Forks: 1
# MalwareAnalysis
MalwareAnalysis 是一个文件分析 Web 应用,其后端使用 Flask,前端使用 Vite + React。用户上传文件后,后端会运行静态检查,UI 会显示判定为干净或恶意的结论及支持性细节。
## 功能简介
- 计算上传文件的 SHA-256 哈希值。
- 运行 YARA 匹配。
- 当文件为 Windows 可执行文件时,提取 PE 元数据。
- 计算熵值并提取字符串/URL。
- 当配置了 `VT_API_KEY` 时,可选择查询 VirusTotal。
- 当 Redis 可用时,将扫描结果缓存在 Redis 中。
## 项目结构
```
MalwareAnalysis/
├── app.py # Flask app and upload API
├── analysis.py # Static analysis helpers
├── requirements.txt # Python dependencies
├── frontend/ # Vite + React app
├── templates/ # Flask templates
└── uploads/ # Saved uploads during analysis
```
## 环境要求
- Python 3.8+
- 推荐 Node.js 18+
- npm
- Redis 是可选的,但推荐用于缓存
- VirusTotal API key 是可选的
## 设置
### 1. 安装 Python 依赖
```
pip install -r requirements.txt
```
### 2. 安装前端依赖
```
cd frontend
npm install
```
### 3. 配置环境变量
如果你想启用 VirusTotal,请在项目根目录下创建一个 `.env` 文件:
```
VT_API_KEY=your_virustotal_api_key
```
如果未设置 `VT_API_KEY`,应用仍可正常工作,并会跳过 VirusTotal 查询。
## 运行应用
在项目根目录下打开两个终端。
### 后端
```
python app.py
```
Flask API 运行在 `http://127.0.0.1:5000`。
### 前端
```
cd frontend
npm run dev
```
React UI 运行在 `http://localhost:5173`。
前端已配置为将 API 请求代理到 Flask,因此在开发环境中,上传请求会发送到 `/api/upload`。
## 使用说明
1. 在浏览器中打开前端。
2. 选择文件或将文件拖拽到上传区域。
3. 等待扫描完成。
4. 查看屏幕上显示的判定结果和依据。
## 后端 API
### `POST /api/upload`
表单字段:
- `file`:要分析的文件
响应:
- 包含判定结论、得分、分析数据和说明的 JSON。
## 注意事项
- 如果 Redis 未运行,应用将在无缓存的情况下继续运行。
- 如果未配置 VirusTotal,扫描仍会进行,仅进行本地分析。
- 如果 `uploads/` 文件夹不存在,后端会自动创建。
## 故障排除
- 如果前端提示扫描失败,请检查 Flask 是否正在端口 5000 上运行。
- 如果 `npm run dev` 无法连接到后端,请在上传文件前确认 Flask 服务器正在运行。
- 如果上传区域没有反应,请确保浏览器控制台没有显示网络错误。
## 许可证
本仓库目前未包含任何许可证文件。
标签:Ask搜索, Flask, PE文件分析, React, Syscalls, VirusTotal, YARA, 云安全监控, 云资产可视化, 搜索引擎查询, 逆向工具, 静态分析