CutterMCP 使用说明
项目简介
CutterMCP 是一个 Model Context Protocol (MCP) 服务器,旨在将 Cutter 这一强大的逆向工程工具的功能暴露给大型语言模型 (LLM)。通过 CutterMCP,LLM 客户端可以调用 Cutter 的各种分析工具,例如反编译、列出函数、导入导出表等,从而实现自动化的二进制文件分析任务。
主要功能点
- 二进制文件分析: 允许 LLM 自动化地执行二进制文件的反编译和分析。
- 信息提取: 能够列出二进制文件中的函数、导入、导出以及内存段等关键信息。
- 动态修改: 支持通过 LLM 指令动态重命名函数和设置反编译器注释,实现交互式分析。
- 工具集成: 以 MCP 工具的形式集成 Cutter 的核心功能,方便 LLM 调用。
- HTTP 接口: 通过 HTTP 协议提供服务,客户端可以使用标准的 HTTP 请求与服务器交互。
安装步骤
- 安装 Cutter: 首先需要安装 Cutter 逆向工程平台。请访问 Cutter 的 GitHub 仓库或官方网站获取安装包并完成安装。
- 安装 Python 依赖: 确保你的系统安装了 Python 3,并使用 pip 安装 MCP Python SDK:
pip install mcp-python-sdk pip install requests - 安装 Cutter 插件 (可选): 如果你希望在 Cutter 内部直接运行 HTTP 服务器并进行交互,可以安装 Cutter 插件。
- 下载仓库的最新 Release 版本。
- 运行 Cutter,打开 Edit -> Preferences -> Plugins 菜单。
- 找到插件目录位置(Preferences 窗口中会显示)。
- 将下载 Release 包中的 'CutterMCPPlugin.py' 文件复制到插件目录下的 python 文件夹中。
- 重启 Cutter,插件会在 Windows -> Plugins 菜单下显示。
服务器配置
CutterMCP 提供了两种运行模式:独立的 Python MCP 服务器 和 Cutter 插件内置 HTTP 服务器。
1. 独立 Python MCP 服务器 (bridge_mcp_cutter.py)
- 配置文件 (JSON 格式):
{ "mcpServers": { "cutter": { "command": "python", "args": [ "/ABSOLUTE_PATH_TO/bridge_mcp_cutter.py" // 将这里替换为 bridge_mcp_cutter.py 文件的绝对路径 ] } } } - 配置参数说明:
- 'server name': 'cutter' (服务器名称,客户端配置中用于标识)
- 'command': 'python' (运行服务器的命令)
- 'args': '[ "/ABSOLUTE_PATH_TO/bridge_mcp_cutter.py" ]' (启动服务器的命令行参数,需要替换为 'bridge_mcp_cutter.py' 脚本的实际绝对路径)
2. Cutter 插件内置 HTTP 服务器 (CutterMCPPlugin.py)
- 无需额外配置,插件安装完成后,启动 Cutter 即可自动运行 HTTP 服务器。默认监听端口为 '8000'。
基本使用方法
-
启动 MCP 服务器:
- 独立服务器: 根据上述服务器配置,在 MCP 客户端 (例如 Claude Desktop) 中配置并启动 'cutter' 服务器。
- 插件服务器: 启动 Cutter 软件,插件会自动启动 HTTP 服务器。
-
客户端调用工具: 在 MCP 客户端中,你可以使用以下工具与 CutterMCP 服务器交互 (以 'bridge_mcp_cutter.py' 提供的工具为例):
- 'list_functions(offset, limit)': 列出函数列表,'offset' 和 'limit' 参数用于分页。
- 'decompile_function_by_address(address)': 反编译指定地址的函数。
- 'list_segments(offset, limit)': 列出内存段。
- 'list_imports(offset, limit)': 列出导入表。
- 'list_exports(offset, limit)': 列出导出表。
- 'search_functions_by_name(query, offset, limit)': 按名称搜索函数。
- 'rename_function_by_address(function_address, new_name)': 重命名函数。
- 'set_decompiler_comment(address, comment)': 设置反编译注释。
例如,在 Claude Desktop 中,你可以通过自然语言指令,间接调用这些工具来分析二进制文件。具体指令格式取决于 Claude Desktop 或其他 MCP 客户端的实现。
注意: 'CutterMCPPlugin.py' 提供的 HTTP 服务接口与 'bridge_mcp_cutter.py' 提供的 MCP 工具略有不同,前者直接通过 HTTP GET/POST 请求访问,后者则通过 MCP 协议和工具调用。请根据你的使用场景选择合适的服务器模式。
信息
分类
开发者工具