titomazzetta/Binary-Krunch-Malware-Analyzer-
GitHub: titomazzetta/Binary-Krunch-Malware-Analyzer-
一款基于本地大语言模型的 ELF 恶意软件静态分析流水线,通过提取二进制特征并利用 Ollama 进行智能分类,实现完全离线、可解释的样本检测与报告生成。
Stars: 0 | Forks: 0
# Binary Krunch - 基于 LLM 的 ELF 恶意软件分类器
一个跨平台的静态分析毕业设计项目,利用 Python、本地特征提取和本地运行的 Ollama 模型对 ELF 恶意软件样本进行分类。
## 本仓库的功能
- 安全地加载二进制文件而不执行它
- 验证其是否为 ELF 样本
- 提取静态特征,如节、符号、导入、解释器、熵和可打印字符串
- 构建结构化的特征 payload
- 将 payload 发送到本地 Ollama 模型以获取判定结果
- 如果 Ollama 不可用,则回退到确定性启发式算法
- 生成 JSON 报告和 Markdown 报告,用于演示和截图
## 本仓库的局限性
- 它不执行恶意软件
- 它不需要任何云 API 密钥
- 它不声称具有完美的恶意软件检测准确率
## 安全、法律和操作边界
- 仅限授权使用:仅分析您在法律上被允许处理的样本。
- 静态分析范围:本项目在不执行二进制文件的情况下对其进行检查。
- 非生产环境免责声明:这是一个教育/毕业设计流水线,不应将其视为独立的生产检测控制手段。
- 恶意软件处理规范:使用隔离的虚拟机,遵循最小权限访问原则,并且不要在宿主系统上运行未知二进制文件。
## 推荐环境
- Python 3.10 或 3.11
- VS Code
- Kali Linux 虚拟机,用于处理恶意软件样本
- 如果需要实时的 LLM 判定结果,请在宿主机或虚拟机上安装 Ollama
## 快速开始
从仓库根目录运行所有命令。
### Linux 或 macOS
```
chmod +x setup.sh
./setup.sh
python main.py doctor
python main.py analyze ./path/to/sample
```
### Windows PowerShell
```
powershell -ExecutionPolicy Bypass -File .\setup.ps1
python .\main.py doctor
python .\main.py analyze .\path\to\sample
```
如果您跳过设置脚本,请手动安装依赖项:
```
pip install -r requirements.txt
```
验证检查:
- 运行 `python main.py doctor` 并确认 Python/包已被检测到(如果故意未安装 Ollama,它可能会显示 `WARN`)。
## 默认模型
默认的 Ollama 模型是 `llama3.2:3b`。您可以覆盖它:
```
python main.py analyze ./sample --model mistral
```
## 主要命令
```
python main.py doctor
python main.py analyze ./samples/test_elf
python main.py analyze ./samples/test_elf --offline
python main.py batch ./samples
```
## 仓库结构图
- `main.py` - CLI 入口点和编排
- `modules/intake` - 安全的文件摄取和元数据
- `modules/analyzer` - ELF 静态分析
- `modules/features` - 特征构建和风险指标
- `modules/llm` - Ollama 和回退分类器
- `modules/models` - 共享的 Pydantic 模式和数据契约
- `modules/reporting` - JSON 和 Markdown 输出
- `modules/threat_intel` - 本地哈希查询和更新工具
- `docs/` - 入门指南、操作手册、GitHub 说明、架构
- `tests/` - 冒烟测试
## 团队成员
- Tito - 集成与发布经理
- Irina - 样本摄取与安全样本处理
- Lehat - 静态分析
- Victor - LLM 集成
- DeLisa - 报告与可解释性
## 最佳实践
请在 Kali 虚拟机内进行所有恶意软件的处理操作。切勿在您的宿主机上运行未知的二进制文件。
## Web API (FastAPI)
使用此命令运行报告浏览器 API:
```
pip install -r requirements.txt
python start_webapp.py --host 0.0.0.0 --port 8000
```
接口列表:
- `GET /` (现代化仪表板 UI)
- `GET /api/health`
- `GET /api/llm/status` (Ollama/LLM 是否可达 + 活跃模型)
- `POST /api/llm/activate-default` (拉取/激活默认的 `llama3.2:3b`)
- `GET /api/reports`
- `POST /api/analyze-upload` (多文件上传 + 顺序分析任务)
- `GET /api/jobs/{job_id}` (实时进度/状态轮询)
位于 `/` 的仪表板支持拖放上传、从 UI 运行分析、各阶段运行指示器、LLM 开/关状态,以及以百分比形式呈现的置信度。
如果缺少依赖项,`start_webapp.py` 将打印准确的安装命令并干净地退出。
标签:AI风险缓解, AMSI绕过, Apex, CSV导出, DAST, DLL 劫持, ELF文件, Linux恶意软件, LLM, LLM评估, Ollama, Python, Unmanaged PE, 二进制分析, 云安全监控, 云安全运维, 云资产清单, 人工智能, 可解释报告, 启发式检测, 大语言模型, 威胁检测, 安全分析工具, 安全合规与隔离, 恶意软件分析, 无后门, 机器学习, 特征提取, 用户模式Hook绕过, 网络安全, 逆向工具, 逆向工程, 隐私保护, 静态分析