barkinvar/malware-analysis
GitHub: barkinvar/malware-analysis
一款结合静态规则与大语言模型的 HTA/JAR 恶意文件分析工具,通过特征提取、规则检测和 LLM 解释三阶段实现自动化分类。
Stars: 0 | Forks: 0
# 智能 HTA 与 JAR 文件分析器 - 第 4 组
SEC530 项目 4。该工具分三个阶段分析 .hta 和 .jar 文件:
提取特征,使用静态规则进行分类,然后请求 LLM 进行分类和解释。
## 安装
Python 3.10+ 和 JDK(用于处理 jar 文件的 javap)。
我们使用虚拟环境,因为较新的 macOS python 是外部管理的:
```
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
```
(如果您不使用 venv,请在 pip 中添加 --break-system-packages)
在 macOS 上,python-magic 还需要 libmagic:
```
brew install libmagic
```
如果您不安装 libmagic,该工具仍然可以工作,它只会退而求其次根据
扩展名来猜测 mime 类型。
## 依赖项
- beautifulsoup4, lxml - 解析 hta 文件中的 html
- python-magic - mime 类型
- requests - 下载样本并调用 openrouter api
- groq - Groq
## 运行方式
任务 1 - 提取特征(单个文件或整个文件夹):
```
python task1_extractor.py dataset/malicious/somefile.hta
python task1_extractor.py dataset/
```
输出至 outputs/features/.json
任务 2 - 基于规则的检测:
```
python task2_detector.py outputs/features/somefile.json
python task2_detector.py outputs/features/
```
输出将被打印并保存至 outputs/detections/
任务 3 - llm 分析:
```
python task3_llm_analyser.py outputs/features/somefile.json
```
原始模型响应保存在 outputs/llm_responses/ 下
## API 使用说明
任务 3 使用 OpenRouter,它提供了一个密钥即可访问许多免费模型。我们比较了
两个不同的模型系列(GLM 和 Gemma)。将您的密钥放在此文件夹中的 .env 文件中
(参见 .env.example),脚本会自动加载它:
```
MB_AUTH_KEY=your-key
OPENROUTER_API_KEY=your-key
```
在 https://openrouter.ai/keys 获取 OpenRouter 密钥。免费层级为每天 50 次请求,因此
您可以添加第二个密钥作为 OPENROUTER_API_KEY2,当第一个密钥耗尽时,task3 将自动切换到它。请勿提交您真实的 .env,仅提交 .env.example。您也可以直接 export 这些变量,
而无需使用 .env。
要运行测试和模型比较:
```
python tests.py # functional tests -> outputs/test_results.txt
python evaluate_llm.py # runs the 6-file llm comparison -> outputs/llm_responses/comparison.txt
```
两者都有带速率限制的免费层级,因此 task3 仅在您提供的文件上运行。
您可以使用 OPENROUTER_MODEL / GROQ_MODEL 环境变量覆盖模型。默认的
openrouter 模型是免费的 deepseek 模型;groq 使用 llama-3.3-70b。
(我们最初尝试了 Gemini,但其免费层级每天仅约 20 次请求,因此我们转而
使用 openrouter,它提供了对几个具有更好限制的免费模型的访问。)
## 数据集
恶意样本来自 MalwareBazaar (https://bazaar.abuse.ch/)。从 https://auth.abuse.ch/ 获取免费的
Auth-Key 并执行:
```
export MB_AUTH_KEY=...
python fetch_malware.py
```
良性样本是生成的:
```
python make_benign.py
```
数据集以受密码保护的 zip 提供。密码在报告中记录。
标签:DAST, DLL 劫持, Python, 大语言模型, 恶意软件分析, 无后门, 逆向工具, 静态检测