关于 mcp_reverse_engineering
mcp_reverse_engineering 通过命令行、Python API 或 MCP 服务,在沙箱中运行逆向分析工具。它面向二进制分析,并以文件系统隔离、超时和参数校验限制工具执行。
主要功能
- 01统一调用分析工具
- 02文件系统隔离执行
- 03执行超时与参数校验
- 04支持命令行、Python API 和 MCP 服务
适用场景
- 01提取二进制文件中的可打印字符串
- 02使用 objdump 反汇编二进制文件
- 03使用 readelf 检查 ELF 头信息
MCP 相关
向 MCP 客户端提供 strings、objdump、readelf 和 binwalk 等逆向工具。工具执行受沙箱工作区和安全限制约束。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
mcp-reverse-engineering
一个沙箱化的 MCP(Model Context Protocol)逆向工程工具,通过安全限制为各种逆向工程工具提供统一接口。
用途
本项目提供安全的沙箱环境,可通过 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
# Extract strings from a binary
mcp-re --tool strings --file /path/to/binary
# Disassemble a binary
mcp-re --tool objdump --args "['-d']" --file /path/to/binary
# Analyze ELF headers
mcp-re --tool readelf --args "['-h', '-s']" --file /path/to/elf
# Run binwalk for firmware analysis
mcp-re --tool binwalk --file /path/to/firmware.bin
Python API
from mcp_reverse_engineering import ReverseEngineeringEngine
# Create engine with default config
engine = ReverseEngineeringEngine(
workspace="./workspace",
timeout=30,
)
# List available tools
print(engine.list_available_tools())
# Execute a tool
result = engine.execute_tool("strings", ["-n", "8"], "/path/to/binary")
print(result)
MCP 服务
from mcp_reverse_engineering.server import mcp, strings, objdump, readelf, binwalk
# Run the server (stdio transport for Claude Desktop)
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 工具架构
可用工具
| 工具 | 类别 | 描述 |
|---|---|---|
| file | file_tools | 确定文件类型 |
| strings | file_tools | 提取可打印字符串 |
| hexdump | file_tools | 十六进制转储 |
| xxd | file_tools | 十六进制转储 |
| objdump | binary_tools | 反汇编二进制文件 |
| readelf | binary_tools | 读取 ELF 标头 |
| binwalk | firmware_tools | 固件分析 |
开发
# Clone the 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 code
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
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。