daedalus/mcp_reverse_engineering
GitHub: daedalus/mcp_reverse_engineering
一个沙盒化的 MCP 逆向工程工具集,为常见逆向分析工具提供统一安全接口,支持与 LLM 协作完成二进制和固件分析。
Stars: 1 | Forks: 0
# mcp-reverse-engineering
一个沙盒化的 MCP (Model Context Protocol) 逆向工程工具,在安全限制下为各种逆向工程工具提供统一接口。
[](https://pypi.org/project/mcp-reverse-engineering/)
[](https://pypi.org/project/mcp-reverse-engineering/)
[](https://github.com/astral-sh/ruff)[](https://deepwiki.com/daedalus/mcp_reverse_engineering)
## 目的
本项目提供了一个安全、沙盒化的环境,用于通过 CLI 或 MCP 协议执行逆向工程工具。它封装了常见的逆向工程实用程序(strings、objdump、readelf、binwalk 等),并带有文件系统隔离、超时和参数验证等安全功能。
## 安装
```
pip install mcp-reverse-engineering
```
或用于开发:
```
pip install -e ".[dev]"
```
### MCP 服务器安装
要与 Claude Desktop 一起作为 MCP 服务器使用:
```
mcp install src/mcp_reverse_engineering/server.py
```
## 用法
### CLI
```
# 从二进制文件中提取字符串
mcp-re --tool strings --file /path/to/binary
# 反汇编二进制文件
mcp-re --tool objdump --args "['-d']" --file /path/to/binary
# 分析 ELF headers
mcp-re --tool readelf --args "['-h', '-s']" --file /path/to/elf
# 运行 binwalk 进行固件分析
mcp-re --tool binwalk --file /path/to/firmware.bin
```
### Python API
```
from mcp_reverse_engineering import ReverseEngineeringEngine
# 使用默认 config 创建 engine
engine = ReverseEngineeringEngine(
workspace="./workspace",
timeout=30,
)
# 列出可用工具
print(engine.list_available_tools())
# 执行工具
result = engine.execute_tool("strings", ["-n", "8"], "/path/to/binary")
print(result)
```
### MCP 服务器
```
from mcp_reverse_engineering.server import mcp, strings, objdump, readelf, binwalk
# 运行服务器 (Claude Desktop 的 stdio transport)
if __name__ == "__main__":
mcp.run()
```
## API
### ReverseEngineeringEngine
用于执行逆向工程工具的主类。
```
engine = ReverseEngineeringEngine(
workspace: str = "./workspace", # Sandbox directory
timeout: int = 30, # Tool execution timeout
config_path: str | Path | None = None, # YAML config path
)
```
**方法:**
- `execute_tool(tool_name: str, args: List[str], file_path: Optional[str] = None) -> str` - 执行工具
- `list_available_tools() -> List[str]` - 列出已启用的工具
- `get_tool_documentation(tool_name: str) -> Dict[str, Any]` - 获取工具文档
- `get_mcp_tools() -> List[Dict[str, Any]]` - 获取 MCP 工具 schemas
### 可用工具
| 工具 | 类别 | 描述 |
|------|----------|-------------|
| file | file_tools | 判断文件类型 |
| strings | file_tools | 提取可打印字符串 |
| hexdump | file_tools | 十六进制转储 |
| xxd | file_tools | 十六进制转储 |
| objdump | binary_tools | 反汇编二进制文件 |
| readelf | binary_tools | 读取 ELF 头 |
| binwalk | firmware_tools | 固件分析 |
## 开发
```
# Clone repository
git clone https://github.com/daedalus/mcp_reverse_engineering.git
cd mcp_reverse_engineering
# Install dependencies
pip install -e ".[test]"
# Run tests
pytest
# Format 代码
ruff format src/ tests/
# Lint
ruff check src/ tests/
# Type check
mypy src/
# Install pre-commit hooks
pip install pre-commit
pre-commit install
```
## MCP 服务器配置
mcp-name: io.github.daedalus/mcp-reverse-engineering
## 环境要求
- Python 3.11+
- 外部工具:binwalk、radare2、ghidra 等(必须单独安装)
## 许可证
MIT
标签:binwalk, DNS 解析, ELF分析, LLM工具链, MCP, Model Context Protocol, objdump, Python, readelf, strings, Wayback Machine, 二进制分析, 云安全运维, 云资产清单, 反汇编, 固件分析, 大模型集成, 安全隔离, 文件系统隔离, 无后门, 沙箱, 网络安全, 逆向工具, 逆向工程, 隐私保护