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, 云安全监控, 云资产可视化, 搜索引擎查询, 逆向工具, 静态分析