MalwareDetector 是一个本地恶意样本检测平台,支持多引擎扫描(YARA、Loki、Zircolite、Sigma),提供上传、任务管理、结果展示与统计。
MalwareDetector/
├── backend/ # Node.js/Express 后端
│ ├── python/ # 扫描脚本(YARA)
│ ├── src/ # 后端核心代码
│ │ ├── scanners/ # 扫描引擎适配(yara/loki/zircolite/sigma)
│ │ └── utils/ # 工具模块
│ ├── sql/ # 数据库初始化脚本
│ └── uploads/ # 上传文件临时目录
├── frontend/ # Vue 3 + Vite 前端
│ └── src/ # 前端源码
├── rules/ # 规则库(YARA/Sigma 等)
├── thirdparty/ # 第三方引擎(Loki/Zircolite)
├── demo/ # 示例样本
└── README.md
- 多引擎扫描:YARA / Loki / Zircolite / Sigma
- 批量上传、任务进度、结果表格与风险等级
- 任务取消与历史结果查看
- 可选数据库持久化(MySQL)
- Node.js 18+
- Python 3.x(需安装
yara-python) - 可选:MySQL 8.x(持久化扫描结果)
后端配置集中在 backend/.env(可选)与 backend/src/config.js。
常用变量:
PORT:后端端口(默认 8080)SCANNER:默认引擎(yara/loki/zircolite/sigma)RULES_DIR:YARA 规则目录PYTHON_PATH:Python 路径(默认python)DB_ENABLED:是否启用数据库(true/false)MYSQL_HOST/MYSQL_USER/MYSQL_PASSWORD/MYSQL_DATABASE/MYSQL_PORT
- 后端
cd backend
npm install
npm run dev
- 前端
cd frontend
npm install
npm run dev
前端默认通过代理访问后端接口(开发环境)。
如需持久化扫描结果,请先初始化数据库:
CREATE DATABASE malware_detector;
然后导入表结构:
mysql -u root -p malware_detector < .\backend\sql\schema.sql
在 backend/.env 中配置数据库连接,并设置 DB_ENABLED=true。
- YARA:由
backend/python/scanner.py执行扫描,后端通过进程调用。 - Loki / Zircolite:位于
thirdparty/,通过后端适配模块调用。 - Sigma:基于
backend/go和backend/go-sigma-rule-engine-master。
- 规则库路径默认指向
rules/下对应目录,可在配置中调整。 uploads/为临时目录,可定期清理。