RohanSardar/malware_analysis
GitHub: RohanSardar/malware_analysis
该项目通过 LightGBM 结构化分类器与 PyTorch CNN 图像分类器的双引擎集成管道,实现 Windows PE 文件的恶意软件检测、家族分类与可解释取证分析。
Stars: 0 | Forks: 0
# 双引擎恶意软件分析 Pipeline
[](https://huggingface.co/spaces/RohanSardar/malware_analysis)
一个强大、双引擎的机器学习 pipeline,专为高精度恶意软件检测和高级取证可解释性而设计。本项目采用集成方法,将静态结构分析与深度可视化字节图分类相结合,以检测和分类 Windows 可执行文件。
## 🏗️ Pipeline 架构
当用户上传文件(`.exe`、`.dll` 或模拟的 `.json`)时,pipeline 会立即拆分数据,并通过两个不同的并行环境进行处理,然后再聚合最终判定结果。
### 1. 引擎 A:结构化分类器 (LightGBM)
*该引擎完全基于可执行文件的元数据和结构逻辑进行操作。*
- **特征提取:** 它利用 `pefile` 库来解析 Windows Portable Executable (PE) 头、导入表、导出符号和字节熵特征。
- **向量化:** 提取的数据严格按照 **EMBER 2018 (v2)** 数据集规范,映射为一个 2,381 维的数值向量。
- **推理:** 该向量被输入到一个经过深度优化的 **LightGBM**(Gradient Boosted Decision Trees)模型中,该模型专为严格的二元分类(恶意与良性)而训练。
- **可解释人工智能 (XAI):** 在传输过程中,该模型会计算 **TreeSHAP**(SHapley Additive exPlanations)值,以识别影响最终百分比的特定结构异常前三名。
### 2. 引擎 B:可视化分类器 (PyTorch CNN)
*该引擎将恶意软件视为原始图像,以寻找空间上的、遗传性的字节模式。*
- **二进制转图像:** 文件的原始字节按顺序映射到一个 2D 矩阵中,并用零填充以形成一个完美的正方形。
- **张量化:** 图像被转换为 `128x128` 的灰度 PyTorch Tensor (`1, 128, 128`)。
- **推理:** 该 tensor 通过一个定制的 3 层 **Convolutional Neural Network (CNN)**。该网络能够识别 24 种不同恶意软件家族的可视化纹理(例如 `Swizzor`、`Allaple.A`)。
### 3. 集成聚合与 UI 渲染
- **风险计算:** pipeline 汇总两个引擎的确切置信度百分比,以生成统一的**总体风险评分**。
- **报告生成:** UI 将结果渲染为带动画的 `gr.Label` 组件,显示提取的灰度字节图,并使用 `fpdf2` 动态编译一份供分析师下载的离线 PDF 取证报告。
## 📊 性能指标与可视化
这些模型在它们各自的测试集上进行了广泛的评估。
### 引擎 A(结构化)评估
```
Accuracy: 0.9512
Precision: 0.9443
Recall: 0.9588
Specificity: 0.9435
F1 Score: 0.9515
```
![]() Rohan Sardar |
![]() Anurag Roy |
![]() Anwesha Mondal |
![]() Sandipan |
![]() Sudipta Das |
标签:Apex, LightGBM, PE文件分析, PyTorch CNN, Vectored Exception Handling, 云安全监控, 凭据扫描, 可解释AI, 机器学习, 逆向工具, 静态分析




