Anubha20/malware_image_detection_project
GitHub: Anubha20/malware_image_detection_project
基于深度学习的恶意软件图像分类检测教学项目,通过将二进制文件转为灰度图像实现恶意与良性样本的二分类判别。
Stars: 0 | Forks: 0
# 恶意软件图像检测 — 项目压缩包
**这是什么**
一个完整、可直接运行的基于图像的恶意软件检测期末项目骨架。
本压缩包使用*合成样本数据*(随机图像),以便你能够运行代码、训练一个小型模型,
并测试推理及一个简单的 Flask Web 演示。在进行最终实验时,请将样本数据集替换为你真实的恶意软件图像数据集
(处理时应符合道德和法律规范)。
**内容**
- `data/` — 小型合成数据集(train / val / test),包含 'malware' 和 'benign' 文件夹。
- `src/convert_bins_to_images.py` — 展示如何将二进制文件转换为灰度图像的脚本(仅作示例)。
- `src/generate_sample_data.py` — 生成此处附带的合成数据集。
- `model/train.py` — Keras 训练脚本,保存 `model.h5`。
- `model/infer.py` — 加载已保存的模型并对图像进行预测。
- `app/flask_app.py` — 简单的 Flask Web 应用,用于上传图像并获取预测结果。
- `requirements.txt` — Python 依赖项。
- `LICENSE` — MIT 许可证。
- `notebooks/demo.ipynb` —(可选)为了减小压缩包体积未包含此 notebook;你可以直接运行脚本。
**快速开始(推荐)**
1. 创建一个 Python virtualenv 并激活它。
2. 安装依赖项:
pip install -r requirements.txt
3. (可选)重新生成样本数据:
python src/generate_sample_data.py --out_dir data --img_size 64 --samples_per_class 200
已包含一个小型样本数据集。
4. 训练模型:
python model/train.py --data_dir data --epochs 6 --img_size 64
这将保存 `model/model.h5`。
5. 对单张图像进行推理:
python model/infer.py --model_path model/model.h5 --img_path data/test/malware/sample_0.png
6. 启动 Flask 演示:
python -m app.flask_app
然后在浏览器中打开 `http://127.0.0.1:5000/` 以上传图像并获取预测结果。
**注意事项与后续步骤**
- 将合成数据替换为由样本二进制文件制备的真实恶意软件图像(PNG/JPEG)。
- 对于研究/实验,请使用 transfer learning(预训练模型)、更大的图像、数据增强以及合适的评估指标(precision/recall/F1、混淆矩阵)。
- 在处理恶意软件样本时,请始终遵守法律和机构规定。
标签:Apex, Flask, Keras, Python, 图像分类, 无后门, 机器学习, 深度学习, 逆向工具