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 个家族 | 基准对比 | ## 许可证 本项目仅供学术研究使用。请勿用于恶意活动。
标签:凭据扫描, 后端开发, 逆向工具