oshadakavinda/malware-static-analysis
GitHub: oshadakavinda/malware-static-analysis
一个基于图神经网络的恶意软件二进制静态分析框架,从控制流图和调用图中提取结构特征实现恶意软件家族分类,并提供可解释性分析与 Web 原型。
Stars: 1 | Forks: 0
# 恶意软件二进制文件的静态分析:识别用于早期检测的相关结构模式
## 概述
本项目实现了一个**基于图的静态恶意软件分析框架**,其功能包括:
1. **评估反编译器的稳定性**,涵盖 Angr、Ghidra 和 Radare2
2. 从控制流图 (CFG) 和调用图中**提取具有区分度的结构特征**
3. 使用传统 ML(Random Forest、SVM)和图神经网络 (GIN、GCN) **对恶意软件家族进行分类**
4. 通过 GNNExplainer 和注意力可视化**提供可解释的结果**
5. **提供一个 Web 原型**,用于二进制文件上传和分类
## 开发者
- Oshada — EG/2021/
**指导教师:** Dr. Kaveen Liyanage
## 快速开始
```
# Clone repo
git clone
cd malware-static-analysis
# 创建 conda 环境
conda create -n malware-analysis python=3.10 -y
conda activate malware-analysis
# 安装依赖
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
pip install -r requirements.txt
# 下载 MalNet-Tiny 数据集
python scripts/download_datasets.py
# 运行 Web prototype
cd webapp/backend
uvicorn app:app --reload
```
## 项目结构
```
├── config/ # Configuration files
├── data/ # Datasets (gitignored)
├── src/
│ ├── decompiler/ # O1: Decompiler extractors & stability analysis
│ ├── features/ # O2: Graph feature extraction
│ ├── models/ # O3: ML classifiers (baseline + GNN)
│ ├── explainability/ # O4: GNNExplainer & pattern discovery
│ └── utils/ # Shared utilities
├── webapp/ # O5: Web prototype (FastAPI + frontend)
├── notebooks/ # Jupyter notebooks for exploration
├── scripts/ # Helper scripts
├── tests/ # Unit tests
└── results/ # Output figures, tables, reports
```
## 数据集
| 数据集 | 类型 | 样本数 | 用途 |
|---------|------|---------|-------|
| MalNet-Tiny | 预构建的 FCG | 5,000 | ML 训练 (O2, O3) |
| BODMAS | 原始 PE 二进制文件 | ~57K | 反编译器稳定性 (O1) |
| Microsoft BIG 2015 | PE 特征 | 9 个家族 | 基准对比 |
## 许可证
本项目仅供学术研究使用。请勿用于恶意活动。
标签:凭据扫描, 后端开发, 逆向工具