WabiSabi10/RevMind
GitHub: WabiSabi10/RevMind
RevMind 是一款 AI 辅助的静态二进制分析工具,帮助逆向工程师和恶意软件分析师在不执行样本的情况下快速理解 PE、ELF 和 Mach-O 文件并生成可审计的风险评估报告。
Stars: 0 | Forks: 0
# RevMind
**专为逆向工程师、恶意软件分析师和 DFIR 提供的 AI 辅助静态二进制分析。**
RevMind 能帮助你快速理解 Windows PE、Linux ELF 和 macOS Mach-O 二进制文件——无需执行它们。
[](backend/pyproject.toml)
[](backend/src/revmind/presentation/api)
[](frontend)
[](backend/pyproject.toml)
[](LICENSE)
## 为什么选择 RevMind?
| 需求 | 你能得到什么 |
|------|----------------|
| 快速分类 | 哈希、格式、架构、编译器特征 |
| 行为提示 | 导入表、IOC、CAPA 能力、YARA 匹配 |
| 加壳 / 熵 | 节区熵值、加壳特征、RWX 标志 |
| 优先级评估 | 具有**0–100 风险评分**及因子分解的可审计报告 |
| 交付方式 | CLI、REST API、React 仪表盘、HTML/MD/JSON 报告 |
## 功能
### 二进制情报
- PE / ELF / Mach-O(包括通用 Mach-O)
- 架构、字节序、位宽、时间戳
- MD5 · SHA-1 · SHA-256
- 编译器标记和数字签名**存在性**(非信任验证)
### 分析器(插件系统)
每个分析器都是可被自动发现的插件(`name`、`description`、`version`、`run()`):
| 插件 | 用途 |
|--------|---------|
| `binary-information` | 格式与元数据 |
| `strings` | 带分类的 ASCII / UTF-16 字符串 |
| `imports` | 库 → 函数 → 类别 |
| `sections` | 布局、权限、异常 |
| `entropy` | 全局及各节区的香农熵 |
| `security` | ASLR、DEP/NX、PIE、RELRO、Canary 等 |
| `ioc` | URL、IP、邮箱、注册表、路径等 |
| `packer` | 基于签名 + 启发式的加壳特征 |
| `yara` | 可选的规则扫描(`yara-python`) |
| `capa` | 可选的能力提取(CAPA CLI) |
### 风险引擎
确定性策略 `1.0.0`(0–100),对高熵值、加壳特征、可疑/网络/远程进程导入、RWX 节区和 IOC 数量设有明确上限。每一分都有据可查。
### 接口
- **CLI** — `revmind analyze|strings|ioc|yara|capa|report|hash …`
- **REST API** — `POST /analyze`、`/report`、`/strings`、`/imports`、`/entropy`、`/ioc`、`/yara`、`/capa`,`GET /history`
- **仪表盘** — 暗色 UI:仪表盘、分析、历史记录、报告、设置
## 如何使用

1. 打开仪表盘控制台
2. 在 **分析** 页面上传 PE、ELF 或 Mach-O 样本
3. 在 **历史记录** 中浏览已保存的运行结果
4. 检查可审计的风险评分、IOC、YARA、CAPA 以及节区熵
## 快速开始
### 前置条件
- Python **3.13+**
- Node.js **20+**(仪表盘)
- 可选:[Poetry](https://python-poetry.org/)、Docker、CAPA CLI、libyara
### 后端(API + CLI)
```
cd backend
python3.13 -m venv .venv
source .venv/bin/activate
pip install -e .
pip install pytest pytest-cov httpx ruff black mypy
# 或者:poetry install
cp .env.example .env # set AUTO_CREATE_SCHEMA=true for local SQLite
# API
PYTHONPATH=src uvicorn revmind.presentation.api.app:app --reload --port 8000
# CLI
revmind analyze ./sample.elf
revmind report ./sample.elf --format html
```
健康检查:
```
curl http://127.0.0.1:8000/health
curl -F "file=@./sample.elf" http://127.0.0.1:8000/analyze
```
### 前端(仪表盘)
```
cd frontend
npm install
npm run dev
```
打开 **http://localhost:5180**(Vite 会将 `/api` 代理到 `:8000`)。
### Docker Compose
```
docker compose up --build
```
| 服务 | URL |
|---------|-----|
| API | http://localhost:8000 |
| UI | http://localhost:8080 |
| Postgres | `localhost:5432` |
## 架构
采用带有 `src` 布局的整洁架构(Clean Architecture):
```
RevMind/
├── backend/
│ └── src/revmind/
│ ├── domain/ # immutable models & contracts
│ ├── application/ # orchestration & API schemas
│ ├── infrastructure/ # parsers, plugins, DB, CAPA/YARA backends
│ └── presentation/ # FastAPI + Typer CLI
├── frontend/ # React + TypeScript + Tailwind
├── docker-compose.yml
└── docs/ # (expanding)
```
插件从 `infrastructure/analyzers` 及可选的 `revmind.analyzers` 入口点自动发现。
## 安全模型
- 上传文件将以流式传输的方式保存到私有临时文件中,设有严格的体积限制并保证会被清理
- 分析过程**绝不**执行、映射或动态链接提交的二进制文件
- 阻塞式任务在 API 事件循环之外运行
- 对字符串、IOC、节区、导入表、报告以及 CAPA/YARA 的输出设有数量限制
- IOC / 加壳 / 风险 / CAPA / YARA 的结果均为**观察结果**,而非最终定论
- PE 证书表 / Mach-O 代码签名命令仅报告**存在性**
生产环境部署应添加身份验证、速率限制、请求超时以及容器资源限制。
## 配置
复制 `backend/.env.example`。主要变量:
| 变量 | 作用 |
|----------|------|
| `DATABASE_URL` | SQLite(开发环境)或 PostgreSQL(生产环境) |
| `MAX_UPLOAD_BYTES` | 共享的上传 / 分析体积上限 |
| `AUTO_CREATE_SCHEMA` | 在开发环境中自动创建并引导数据表 |
| `YARA_RULES_PATH` | 存放 `.yar` / `.yara` 规则的文件或目录 |
| `CAPA_ENABLED` / `CAPA_TIMEOUT` | 可选的 CAPA 集成 |
| `CORS_ORIGINS` | 仪表盘源(JSON 列表) |
可选的 YARA:
```
cd backend && poetry install --with yara
# 设置 YARA_RULES_PATH=./rules
```
可选的 CAPA:安装 `capa` CLI(或设置 `CAPA_EXECUTABLE`)。
## 开发
```
cd backend
pytest # ≥90% coverage enforced
ruff check .
black --check .
mypy
cd ../frontend
npm run build
```
## 路线图
- [ ] 通过 Graphviz 实现图形生成器(CFG / 调用 / 导入)
- [ ] 针对生产环境数据库 schema 的 Alembic 迁移
- [ ] 需身份验证的 API + 多用户历史记录
- [ ] 可选的 LLM 助手(观察结果与解释)
- [ ] 更丰富的文档(架构图、插件指南)
## 免责声明
RevMind 旨在用于**经过授权的**二进制情报、恶意软件分析、威胁狩猎和 DFIR 工作流。你有责任遵守适用的法律和组织的规定。请勿使用此软件损害你不拥有或无权分析的系统。
## 许可证
MIT — 详见 [许可证](LICENSE)。
标签:AV绕过, DAST, FastAPI, YARA, 云资产可视化, 云资产清单, 基础设施安全, 恶意软件分析, 数字取证, 测试用例, 自动化脚本, 请求拦截, 逆向工具, 逆向工程, 静态二进制分析