tanay-codes/PE-File-Malware-Detector

GitHub: tanay-codes/PE-File-Malware-Detector

一个基于 Python 和 FastAPI 的 PE 文件恶意软件检测原型,结合静态特征提取与 Random Forest 机器学习分类器,通过 Web 界面和 API 对 Windows 可执行文件进行恶意性分析。

Stars: 0 | Forks: 0

# PE 文件恶意软件检测器 一个轻量级的基于 Web 的 PE 恶意软件检测原型,它结合了 FastAPI 后端、简单的前端仪表板以及一个机器学习分类器,用于分析 Windows 可移植可执行 (Portable Executable) 文件。 ## 概述 本项目允许用户: - 上传 PE 文件,例如 `.exe`、`.dll`、`.sys` 或 `.scr` - 从文件中提取结构和行为特征 - 运行经过训练的机器学习模型来评估文件是否可能是恶意的 - 检查元数据、可疑导入、熵信息以及模型可解释性因子 - 通过内置的 Web 界面或 API 重新训练模型 本应用程序旨在作为一个演示或教育项目,默认情况下使用合成的 PE 风格数据集进行初始模型训练。 ## 功能 - 使用 `pefile` 进行 PE 解析和特征提取 - 基于 Random Forest 的恶意软件分类 - 用于预测和模型管理的 REST API - 现代化的 Web 仪表板,用于上传、结果、模型指标和扫描历史 - 如果没有可用的已保存模型,则自动训练模型 ## 技术栈 - Python - FastAPI - Uvicorn - scikit-learn - pandas - numpy - joblib - pefile - HTML、CSS 和原生 JavaScript ## 项目结构 ``` backend/ app.py # FastAPI API routes and frontend serving ml_model.py # model training, evaluation, prediction, and persistence pe_extractor.py # PE parsing and feature extraction logic frontend/ index.html # UI layout app.js # frontend logic and API calls style.css # dashboard styles run.py # startup script for the application requirements.txt # Python dependencies ``` ## 要求 推荐使用 Python 3.9 或更高版本。 ## 安装说明 1. 克隆或打开项目文件夹。 2. 创建并激活虚拟环境: ``` python -m venv .venv .venv\Scripts\activate ``` 3. 安装所需的包: ``` pip install -r requirements.txt ``` ## 运行应用程序 在项目根目录下,使用以下命令启动服务器: ``` python run.py ``` 然后在浏览器中打开: ``` http://127.0.0.1:8000 ``` 启动脚本将: - 检查是否已存在训练好的模型 - 如有需要,自动训练一个默认模型 - 启动 FastAPI 服务器 ## 用法 1. 在浏览器中打开 Web UI。 2. 从扫描页面上传 PE 文件。 3. 查看分类结果、恶意软件概率、元数据、可疑 API 导入、节熵以及模型贡献因子。 4. 访问“模型中心”(Model Center) 标签页,使用自定义超参数重新训练分类器。 5. 在“历史”(History) 标签页中查看以前的扫描记录。 ## API 端点 ### POST /api/predict 上传一个 PE 文件并接收分类结果。 - 请求:`multipart/form-data`,包含名为 `file` 的文件字段 - 响应包括: - `status` - `prediction` - `metadata` - `features` ### POST /api/train 触发模型重新训练。 - 表单字段: - `n_estimators`(默认值:`100`) - `max_depth`(可选) ### GET /api/model 检索已保存的模型指标和超参数。 ### GET /api/history 返回当前会话的近期扫描历史记录。 ## 模型行为 该分类器是一个基于经特征工程处理的 PE 特征训练的 Random Forest 模型,这些特征包括: - 头部值 - 节数和熵 - 导入计数和可疑 API 使用情况 - 资源统计信息 - 校验和有效性 模型在训练后会保存为 `backend/model/model.joblib`。 ## 注意事项 - 目前的实现是一个原型,无意替代生产级别的恶意软件检测 pipeline。 - 对于实际应用,应使用包含真实 PE 二进制文件的带标签数据集以及更强大的特征工程 pipeline。 - 本应用程序专为本地实验和演示而设计。 ## 许可证 本项目按“原样”提供,仅供教育和实验目的使用。
标签:Apex, AV绕过, FastAPI, PE文件分析, 云安全监控, 多模态安全, 数据可视化, 机器学习, 网络测绘, 逆向工具, 静态分析