daedalus/mcp_reverse_engineering

GitHub: daedalus/mcp_reverse_engineering

一个沙盒化的 MCP 逆向工程工具集,为常见逆向分析工具提供统一安全接口,支持与 LLM 协作完成二进制和固件分析。

Stars: 1 | Forks: 0

# mcp-reverse-engineering 一个沙盒化的 MCP (Model Context Protocol) 逆向工程工具,在安全限制下为各种逆向工程工具提供统一接口。 [![PyPI](https://img.shields.io/pypi/v/mcp-reverse-engineering.svg)](https://pypi.org/project/mcp-reverse-engineering/) [![Python](https://img.shields.io/pypi/pyversions/mcp-reverse-engineering.svg)](https://pypi.org/project/mcp-reverse-engineering/) [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)[![Ask DeepWiki](https://deepwiki.com/badge.svg)](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, 二进制分析, 云安全运维, 云资产清单, 反汇编, 固件分析, 大模型集成, 安全隔离, 文件系统隔离, 无后门, 沙箱, 网络安全, 逆向工具, 逆向工程, 隐私保护