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, 大语言模型, 恶意软件分析, 无后门, 逆向工具, 静态检测