sjkim1127/Reversecore_MCP
GitHub: sjkim1127/Reversecore_MCP
一个面向 AI 驱动的逆向工程 MCP 服务器,集成 Ghidra、Radare2 与 YARA,实现自动化二进制分析与报告生成。
Stars: 57 | Forks: 8
# Reversecore_MCP

[](https://opensource.org/licenses/MIT)
[](https://www.python.org/downloads/)
[](https://github.com/jlowin/fastmcp)
[](https://www.docker.com/)
[](tests/)
[](htmlcov/)
[](https://youtu.be/wJGW2bp3c5A)
[🇰🇷 한국어 (Korean)](README_KR.md)
一个企业级 MCP (Model Context Protocol) 服务器,用于 AI 驱动的逆向工程。通过自然语言命令使 AI 代理能够执行全面的二进制分析。
## 📋 前置条件
### Ghidra (反编译必需)
Ghidra 是高级反编译功能所必需的。安装脚本会自动将 Ghidra 安装到 `/Tools` 目录。
**选项 1:自动安装(推荐)**
```
# Windows (PowerShell)
.\scripts\install-ghidra.ps1
# 带自定义版本/路径(可选)
.\scripts\install-ghidra.ps1 -Version "11.4.3" -InstallDir "C:\CustomPath"
```
```
# Linux/macOS
chmod +x ./scripts/install-ghidra.sh
./scripts/install-ghidra.sh
# 带自定义版本/路径(可选)
./scripts/install-ghidra.sh -v 11.4.3 -d /custom/path
```
**脚本执行的操作:**
- 从 GitHub 下载 Ghidra 11.4.3(约 400MB)
- 解压到 `/Tools/ghidra_11.4.3_PUBLIC_YYYYMMDD`
- 设置 `GHIDRA_INSTALL_DIR` 环境变量
- 更新项目的 `.env` 文件
**选项 2:手动安装**
1. **下载**:[Ghidra 11.4.3](https://github.com/NationalSecurityAgency/ghidra/releases/tag/Ghidra_11.4.3_build)
2. **解压**到 `/Tools/` 或任意目录
3. **设置环境变量**:
# Linux/macOS (~/.bashrc 或 ~/.zshrc)
export GHIDRA_INSTALL_DIR=/path/to/ghidra_11.4.3_PUBLIC_YYYYMMDD
# Windows (PowerShell - 永久)
[Environment]::SetEnvironmentVariable("GHIDRA_INSTALL_DIR", "C:\path\to/ghidra", "User")
或添加到 `.env` 文件(从 `.env.example` 复制)
## 🚀 快速启动
### Docker(推荐)
```
# 自动检测架构(Intel/AMD 或 Apple Silicon)
./scripts/run-docker.sh
# 或手动操作:
# Intel/AMD
docker compose --profile x86 up -d
# Apple Silicon (M1/M2/M3/M4)
docker compose --profile arm64 up -d
```
### MCP 客户端配置(Cursor AI)
**步骤 1:构建 Docker 镜像**
统一 Dockerfile 会自动检测系统架构:
```
# 自动架构检测(适用于所有平台)
docker build -t reversecore-mcp:latest .
# 或使用便捷脚本
./scripts/run-docker.sh
```
**步骤 2:配置 MCP 客户端**
添加到 `~/.cursor/mcp.json`:
## ✨ 核心功能
### 🔍 静态分析
全面的文件分析和元数据提取:
- **文件类型检测**:识别二进制格式、架构和编译器信息(`run_file`)
- **字符串提取**:提取 ASCII/Unicode 字符串(可配置限制)(`run_strings`)
- **固件分析**:深度扫描嵌入式文件和签名(`run_binwalk`)
- **二进制解析**:使用 LIEF 解析 PE/ELF/Mach-O 头与节(`parse_binary_with_lief`)
### ⚙️ 反汇编与反编译
多架构二进制分析,智能工具集成:
- **Radare2 集成**:完整的 r2 命令访问,带连接池(`run_radare2`、`Radare2_disassemble`)
- **Ghidra 反编译**:企业级反编译,16GB JVM 堆(`smart_decompile`、`get_pseudo_code`)
- **多架构支持**:x86、x86-64、ARM、ARM64、MIPS、PowerPC(通过 Capstone)(`disassemble_with_capstone`)
- **智能回退**:优先 Ghidra,r2 作为后备的最佳策略
### 🧬 高级分析
深入的代码分析与行为理解:
- **交叉引用分析**:跟踪函数调用、数据引用与控制流(`analyze_xrefs`)
- **结构恢复**:从指针算法和内存访问模式推断数据结构(`recover_structures`)
- **仿真**:基于 ESIL 的代码仿真,用于动态行为分析(`emulate_machine_code`)
- **二进制对比**:对比二进制文件并匹配库函数(`diff_binaries`、`match_libraries`)
### 🦠 恶意软件分析与防御
针对威胁检测与缓解的专业工具:
- **休眠威胁检测**:查找隐藏后门、孤立函数和逻辑炸弹(`dormant_detector`)
- **IOC 提取**:自动提取 IP、URL、域名、邮箱、哈希值与加密地址(`extract_iocs`)
- **YARA 扫描**:基于规则的模式匹配恶意软件检测(`run_yara`)
- **自适应疫苗**:生成防御措施(YARA 规则、二进制补丁、NOP 注入)(`adaptive_vaccine`)
- **漏洞探测**:检测危险 API 模式与利用路径(`vulnerability_hunter`)
### 📊 服务器健康与监控
面向企业环境的内置可观测性工具:
- **健康检查**:监控运行时间、内存使用与操作状态(`get_server_health`)
- **性能指标**:跟踪工具执行时间、错误率与调用次数(`get_tool_metrics`)
- **自动恢复**:针对临时故障的自动重试机制与指数退避
### 🖥️ Web 仪表盘(新增)
无需 LLM 的二进制分析可视化界面:
```
# 以 HTTP 模式启动服务器
MCP_TRANSPORT=http MCP_API_KEY=your-secret-key python server.py
# 访问仪表板
open http://localhost:8000/dashboard/
```
**特性:**
- **概览**:带上传统计的文件列表
- **分析**:函数列表与反汇编查看器
- **IOC**:提取的 URL、IP、邮箱、字符串
**安全性:**
- 通过 HTML 净化防止 XSS
- 路径遍历防护
- API 密钥认证(可选)
### 📝 报告生成 (v3.1)
支持准确时间戳的专业恶意分析报告生成:
- **一次性提交**:通过单个命令生成标准化 JSON 报告(`generate_malware_submission`)
- **会话跟踪**:开始/结束分析会话,自动计算持续时间(`start_analysis_session`、`end_analysis_session`)
- **IOC 收集**:在分析过程中收集并整理指标(`add_session_ioc`)
- **MITRE ATT&CK 映射**:记录技术并引用对应框架(`add_session_mitre`)
- **邮件投递**:通过 SMTP 支持直接发送报告给安全团队(`send_report_email`)
- **多模板**:完整分析、快速初筛、IOC 摘要、执行简报
```
# 示例 1:一次性 JSON 提交
generate_malware_submission(
file_path="wannacry.exe",
analyst_name="Hunter",
tags="ransomware,critical"
)
# 示例 2:交互式会话工作流
get_system_time()
start_analysis_session(sample_path="malware.exe")
add_session_ioc("ips", "192.168.1.100")
add_session_mitre("T1059.001", "PowerShell", "Execution")
end_analysis_session(summary="Ransomware detected")
create_analysis_report(template_type="full_analysis")
send_report_email(to="security-team@company.com")
```
### ⚡ 性能与可靠性 (v3.1)
- **资源管理**:
- **僵尸进程杀手**:通过 `try...finally` 块确保子进程终止
- **内存保护**:对 `strings` 输出设置 2MB 严格限制,防止 OOM
- **崩溃隔离**:LIEF 解析器在独立进程中运行,安全处理段错误
- **优化**:
- **动态超时**:根据文件大小自动调整(基础 + 2s/MB,最大 +600s)
- **Ghidra JVM**:16GB 堆内存,适用于现代系统(24-32GB RAM)
- **基于 Sink 的剪枝**:39 个危险 Sink API,用于智能路径优先级
- **跟踪深度优化**:从 3 降至 2,加快执行路径分析
- **基础设施**:
- **无状态报告**:基于时区的报告生成,不修改全局状态
- **健壮的自动重试**:装饰器正确传播异常,支持自动恢复
- **配置驱动**:验证限制与中心配置同步
### 🛠️ 核心工具
| 类别 | 工具 |
|----------||
| **文件操作** | `list_workspace`, `get_file_info` |
| **静态分析** | `run_file`, `run_strings`, `run_binwalk` |
| **反汇编** | `run_radare2`, `Radare2_disassemble`, `disassemble_with_capstone` |
| **反编译** | `smart_decompile`, `get_pseudo_code` |
| **高级分析** | `analyze_xrefs`, `recover_structures`, `emulate_machine_code` |
| **二进制解析** | `parse_binary_with_lief` |
| **二进制对比** | `diff_binaries`, `match_libraries` |
| **恶意软件分析** | `dormant_detector`, `extract_iocs`, `run_yara`, `adaptive_vaccine`, `vulnerability_hunter` |
| **报告生成** | `get_system_time`, `set_timezone`, `start_analysis_session`, `add_session_ioc`, `add_session_mitre`, `end_analysis_session`, `create_analysis_report`, `send_report_email`, `generate_malware_submission` |
| **服务器管理** | `get_server_health`, `get_tool_metrics` |
## 📊 分析流程
```
📥 Upload → 🔍 Triage → 🔗 X-Refs → 🏗️ Structures → 📝 Decompile → 🛡️ Defense
```
**使用内置提示进行引导分析:**
- `full_analysis_mode` - 包含 **6 阶段专家推理** 和证据分类的全面恶意软件分析
- `basic_analysis_mode` - 快速初筛,用于快速初始评估
- `game_analysis_mode` - 游戏客户端分析,含作弊检测指导
- `firmware_analysis_mode` - 聚焦嵌入式系统的 IoT/固件安全分析
- `report_generation_mode` - 包含 MITRE ATT&CK 映射的专业报告生成流程
## 🏗️ 架构
```
reversecore_mcp/
├── core/ # Infrastructure & Services
│ ├── config.py # Configuration management
│ ├── ghidra.py, ghidra_manager.py, ghidra_helper.py # Ghidra integration (16GB JVM)
│ ├── r2_helpers.py, r2_pool.py # Radare2 connection pooling
│ ├── security.py # Path validation & input sanitization
│ ├── result.py # ToolSuccess/ToolError response models
│ ├── metrics.py # Tool execution metrics
│ ├── report_generator.py # Report generation service
│ ├── plugin.py # Plugin interface for extensibility
│ ├── decorators.py # @log_execution, @track_metrics
│ ├── error_handling.py # @handle_tool_errors decorator
│ ├── logging_config.py # Structured logging setup
│ ├── memory.py # AI memory store (async SQLite)
│ ├── mitre_mapper.py # MITRE ATT&CK framework mapping
│ ├── resource_manager.py # Subprocess lifecycle management
│ └── validators.py # Input validation
│
├── tools/ # MCP Tool Implementations
│ ├── analysis/ # Basic analysis tools
│ │ ├── static_analysis.py # file, strings, binwalk
│ │ ├── lief_tools.py # PE/ELF/Mach-O parsing
│ │ ├── diff_tools.py # Binary comparison
│ │ └── signature_tools.py # YARA scanning
│ │
│ ├── radare2/ # Radare2 integration
│ │ ├── r2_analysis.py # Core r2 analysis
│ │ ├── radare2_mcp_tools.py # Advanced r2 tools (CFG, ESIL)
│ │ └── r2_session.py # Session management
│ │
│ ├── ghidra/ # Ghidra decompilation
│ │ ├── decompilation.py # smart_decompile, pseudo-code
│ │ └── ghidra_tools.py # Structure/Enum management
│ │
│ ├── malware/ # Malware analysis & defense
│ │ ├── dormant_detector.py # Hidden threat detection
│ │ ├── adaptive_vaccine.py # Defense generation
│ │ ├── vulnerability_hunter.py # Vulnerability detection
│ │ ├── ioc_tools.py # IOC extraction
│ │ └── yara_tools.py # YARA rule management
│ │
│ ├── common/ # Cross-cutting concerns
│ │ ├── file_operations.py # Workspace file management
│ │ ├── server_tools.py # Health checks, metrics
│ │ └── memory_tools.py # AI memory operations
│ │
│ └── report/ # Report generation (v3.1)
│ ├── report_tools.py # Core report engine
│ ├── report_mcp_tools.py # MCP tool registration
│ ├── session.py # Analysis session tracking
│ └── email.py # SMTP integration
│
├── prompts.py # AI reasoning prompts (5 modes)
├── resources.py # Dynamic MCP resources (reversecore:// URIs)
└── server.py # FastMCP server initialization & HTTP setup
```
## 🐳 Docker 部署
### 多架构支持
统一的 `Dockerfile` 会自动检测系统架构:
| 架构 | 自动检测 | 支持 |
|--------------|---------------|---------|
| x86_64 (Intel/AMD) | ✅ | 完整支持 |
| ARM64 (Apple Silicon M1-M4) | ✅ | 完整支持 |
### 运行命令
```
# 使用便捷脚本(自动检测架构)
./scripts/run-docker.sh # Start
./scripts/run-docker.sh stop # Stop
./scripts/run-docker.sh logs # View logs
./scripts/run-docker.sh shell # Shell access
# 手动 Docker 构建(适用于所有架构)
docker build -t reversecore-mcp:latest .
# 或使用 Docker Compose
docker compose up -d
```
### 环境变量
| 变量 | 默认值 | 描述 |
|----------|---------|-------------|
| `MCP_TRANSPORT` | `http` | 传输模式(`stdio` 或 `http`) |
| `REVERSECORE_WORKSPACE` | `/app/workspace` | 分析工作空间路径 |
| `LOG_LEVEL` | `INFO` | 日志级别 |
| `GHIDRA_INSTALL_DIR` | `/opt/ghidra` | Ghidra 安装路径 |
## 🔒 安全性
- **无 Shell 注入**:所有子进程调用使用列表参数
- **路径验证**:工作空间限制的文件访问
- **输入净化**:所有参数均经过验证
- **速率限制**:可配置的请求限制(HTTP 模式)
- **CI 检查**:Bandit(静态分析)、pip-audit(依赖漏洞)、Gitleaks(密钥)
## 🧪 开发
```
# 安装依赖
pip install -r requirements-dev.txt
# 运行测试
pytest tests/ -v
# 运行覆盖率测试
pytest tests/ --cov=reversecore_mcp --cov-fail-under=54
# 代码质量
ruff check reversecore_mcp/
black reversecore_mcp/
```
### 测试状态
- ✅ **700+ 测试通过**(单元测试 + 集成测试)
- 📊 **55% 覆盖率**(CI 最低要求 54%)
- ⏱️ Bandit 安全扫描、pip-audit 依赖检查、pytest
## 📚 API 参考
### 工具响应格式
所有工具返回结构化的 `ToolResult`:
```
{
"status": "success",
"data": "...",
"metadata": { "bytes_read": 1024 }
}
```
```
{
"status": "error",
"error_code": "VALIDATION_ERROR",
"message": "File not found",
"hint": "Check file path"
}
```
### 常见错误代码
| 代码 | 描述 |
|------|-------------|
| `VALIDATION_ERROR` | 无效的输入参数 |
| `TIMEOUT` | 操作超时 |
| `PARSE_ERROR` | 解析工具输出失败 |
| `TOOL_NOT_FOUND` | 缺少必需的 CLI 工具 |
## 💻 系统要求
| 组件 | 最低要求 | 推荐配置 |
|-----------|---------|-------------|
| **CPU** | 4 核 | 8+ 核 |
| **RAM** | 16 GB | 32 GB |
| **存储** | 512 GB SSD | 1 TB NVMe |
| **操作系统** | Linux/macOS | Docker 环境 |
## 📄 许可证
MIT 许可证 - 详见 [LICENSE](LICENSE)。
## 🔗 链接
- [GitHub 仓库](https://github.com/sjkim1127/Reversecore_MCP)
- [FastMCP 文档](https://github.com/jlowin/fastmcp)
- [MCP 协议规范](https://modelcontextprotocol.io/)
🍎 macOS(所有处理器)
``` { "mcpServers": { "reversecore": { "command": "docker", "args": [ "run", "-i", "--rm", "-v", "/Users/YOUR_USERNAME/Reversecore_Workspace:/app/workspace", "-e", "REVERSECORE_WORKSPACE=/app/workspace", "-e", "MCP_TRANSPORT=stdio", "reversecore-mcp:latest" ] } } } ```🐧 Linux
``` { "mcpServers": { "reversecore": { "command": "docker", "args": [ "run", "-i", "--rm", "-v", "/path/to/workspace:/app/workspace", "-e", "REVERSECORE_WORKSPACE=/app/workspace", "-e", "MCP_TRANSPORT=stdio", "reversecore-mcp:latest" ] } } } ```🪟 Windows
``` { "mcpServers": { "reversecore": { "command": "docker", "args": [ "run", "-i", "--rm", "-v", "C:/Reversecore_Workspace:/app/workspace", "-e", "REVERSECORE_WORKSPACE=/app/workspace", "-e", "MCP_TRANSPORT=stdio", "reversecore-mcp:latest" ] } } } ```标签:AI代理, AI驱动安全, Amass, DAST, Docker, FastMCP, Findomain, Ghidra, Hakrawler, MCP服务器, Python 3.10, Radare2, SEO标签, TLS指纹, YARA, 二进制分析, 云安全监控, 云安全运维, 云资产可视化, 企业级安全, 威胁情报, 威胁狩猎, 安全优先, 安全防御评估, 开发者工具, 开源安全工具, 恶意软件分析, 模型上下文协议, 脱壳, 自动化逆向工程, 自然语言命令, 请求拦截, 逆向分析, 逆向工具, 逆向工程平台, 静态分析