vinzabe/malware-family-classifier
GitHub: vinzabe/malware-family-classifier
结合二进制结构分析与 TF-IDF 特征的机器学习恶意软件家族分类器,附带 LLM 增强分析能力。
Stars: 1 | Forks: 0
# 恶意软件家族分类器
基于机器学习的恶意软件家族分类器,结合了结构化二进制分析(PE/ELF 解析、操作码反汇编、字节统计)和对提取字符串的 TF-IDF 处理,并输入到 LogisticRegression 模型中。包含可选的 LLM 增强,用于家族假设和 IOC 提取。
## 功能
- **特征提取**:字节熵/直方图、PE (pefile) 和 ELF (lief) 结构解析、使用 capstone 反汇编获取操作码分布、可打印字符串提取
- **分类**:使用 scikit-learn 的 LogisticRegression,结合 DictVectorizer(数字特征)+ TF-IDF(字符串),支持 joblib 保存/加载
- **LLM 增强**:将特征摘要发送至 LLM,用于生成家族假设、类别、IOC、行为和依据
- **CLI**:`train`、`predict` 和 `enrich` 子命令
## 快速开始
```
pip install -r requirements.txt
# 在 JSONL 数据集上训练 ({"path": "/path/to/binary", "label": "family"})
python -m malclf.cli train --dataset data.jsonl -o model.joblib
# 预测
python -m malclf.cli predict --model model.joblib /path/to/binary
# LLM 扩充
python -m malclf.cli enrich /path/to/binary
```
## 测试
```
pytest tests/ -v
LLM_LIVE=1 pytest tests/ -v # includes live LLM enrichment test
```
## 架构
```
malclf/
features.py - ByteFeatures, StructuralFeatures, OpcodeFeatures, FeatureExtractor
model.py - MalwareFamilyClassifier (train/predict/save/load)
llm_enricher.py - LLMMalwareEnricher (family hypothesis + IOCs)
cli.py - CLI entry point
```
## 许可证
MIT
标签:Apex, C2, DAST, DLL 劫持, DNS 反向解析, ELF文件分析, IOC提取, IP 地址批量处理, LLM增强, PE文件分析, Python, scikit-learn, TF-IDF, Wayback Machine, 二进制文件分析, 云资产清单, 反汇编, 大语言模型, 威胁情报, 字节熵, 开发者工具, 恶意软件分析, 恶意软件家族分类, 搜索语句(dork), 无后门, 机器学习, 特征提取, 网络信息收集, 网络安全, 逆向工具, 逆向工程, 逻辑回归, 隐私保护