使用说明
项目简介
IDA Pro MCP Server 是一个基于 Model Context Protocol (MCP) 的服务器,旨在为 IDA Pro 逆向工程工具提供标准化的接口。通过此服务器,大型语言模型 (LLM) 客户端可以与 IDA Pro 交互,执行代码分析、反汇编、修改注释等任务,从而实现自动化逆向工程流程。
主要功能点
- 连接检查: 验证与 IDA Pro 插件的连接状态。
- 元数据获取: 获取当前 IDA Pro 数据库 (IDB) 的元数据信息,例如文件路径、模块名、基地址等。
- 函数操作:
- 根据函数名称或地址获取函数信息(地址、名称、大小)。
- 列出数据库中的所有函数,支持分页浏览。
- 反编译指定地址的函数,获取C伪代码。
- 反汇编指定地址的函数,获取汇编代码。
- 代码导航:
- 获取当前在IDA Pro中选中的地址。
- 获取当前选中的函数信息。
- 获取指定地址的交叉引用信息。
- 获取程序入口点列表。
- 代码修改:
- 为指定地址的代码行设置注释(同时作用于反汇编和反编译视图)。
- 重命名函数内的局部变量。
- 重命名函数名称。
- 设置函数原型(函数签名)。
- 设置局部变量的类型。
- 数值转换: 提供数值(十进制或十六进制)到不同进制和格式的转换,包括十进制、十六进制、字节串、ASCII 字符串和二进制表示。
安装步骤
- 安装 Python: 确保已安装 Python 3.10 或更高版本。如果您的 IDA Pro 使用较旧的 Python 版本,可能需要使用 'idapyswitch' 工具切换到较新的版本。
- 安装 IDA Pro: 确保已安装 IDA Pro 8.3 或更高版本 (推荐 9.0 或更高版本)。
- 安装 ida-pro-mcp 包: 打开命令行终端,运行以下 pip 命令安装 'ida-pro-mcp' Python 包:
pip install --upgrade git+https://github.com/mrexodia/ida-pro-mcp - 配置并安装 MCP 服务器和 IDA 插件: 在命令行终端中运行以下命令,自动配置 MCP 服务器并安装 IDA Pro 插件:
ida-pro-mcp --install
服务器配置
对于 MCP 客户端 (例如 Cline, Roo Code, Claude 等),您需要配置 MCP 服务器的连接信息。以下是 'ida-pro-mcp' 服务器的配置示例 (JSON 格式),请根据您的实际情况进行调整:
{ "mcpServers": { "github.com/mrexodia/ida-pro-mcp": { "command": "uv", "args": [ "--directory", "c:\\MCP\\ida-pro-mcp", // 【请替换为 ida-pro-mcp 仓库在您电脑上的实际存储路径】 "run", "ida-pro-mcp", "--install-plugin" ], "timeout": 1800, "disabled": false, "autoApprove": [ // 自动批准的工具列表 "check_connection", "get_metadata", "get_function_by_name", "get_function_by_address", "get_current_address", "get_current_function", "convert_number", "list_functions", "decompile_function", "disassemble_function", "get_xrefs_to", "get_entry_points", "set_comment", "rename_local_variable", "rename_function", "set_function_prototype", "set_local_variable_type" ], "alwaysAllow": [ // 始终允许的工具列表 (通常与 autoApprove 列表相同) "check_connection", "get_metadata", "get_function_by_name", "get_function_by_address", "get_current_address", "get_current_function", "convert_number", "list_functions", "decompile_function", "disassemble_function", "get_xrefs_to", "get_entry_points", "set_comment", "rename_local_variable", "rename_function", "set_function_prototype", "set_local_variable_type" ] } } }
配置参数说明:
- 'command': 指定启动 MCP 服务器的命令。这里配置为使用 'uv' (一个快速的 Python 包安装和运行工具) 来运行 'ida-pro-mcp' 脚本。请确保您已安装 'uv',如未安装请先执行 'pip install uv'。
- 'args': 传递给 'command' 的参数列表。
- '--directory': 指定 'ida-pro-mcp' 仓库的根目录。请务必将其中的 'c:\MCP\ida-pro-mcp' 替换为您电脑上 'ida-pro-mcp' 仓库的实际存储路径。
- 'run ida-pro-mcp': 使用 'uv run' 运行 'ida-pro-mcp' 脚本 (实际执行的是 'src/ida_pro_mcp/server.py')。
- '--install-plugin': 指示服务器在启动时自动安装 IDA Pro 插件。
- 'timeout': 设置 MCP 客户端连接到服务器的超时时间,单位为秒。
- 'disabled': 设置为 'true' 可以禁用此 MCP 服务器配置。
- 'autoApprove' 和 'alwaysAllow': 用于配置 MCP 客户端对工具的权限管理。这里列出了所有可用的工具,并配置为自动批准和始终允许客户端调用这些工具。您可以根据需要调整权限配置。
基本使用方法
- 启动 IDA Pro 插件:
- 打开 IDA Pro 并加载您要分析的二进制文件。
- 在 IDA Pro 菜单栏中,依次点击 'Edit -> Plugins -> MCP',启动 MCP 服务器插件。首次启动可能需要一些时间加载。
- 配置 MCP 客户端:
- 打开您使用的 MCP 客户端 (例如 Cline, Roo Code 等)。
- 在客户端的 MCP 服务器配置中,添加或修改 'ida-pro-mcp' 服务器的配置,将上述 JSON 配置信息填入客户端的相应设置中,并确保将 'args' 中的目录路径替换为您本地仓库的实际路径。
- 使用 MCP 工具:
- 在 LLM 客户端的 Prompt 中,您可以使用 '<use_mcp_tool>' 标签来调用 IDA Pro MCP 服务器提供的各种工具,从而指示 LLM 客户端与 IDA Pro 交互。
- 例如,要使用 'check_connection' 工具检查客户端与 IDA Pro MCP 服务器的连接是否正常,您可以在 Prompt 中添加以下 XML 代码:
<use_mcp_tool> <server_name>github.com/mrexodia/ida-pro-mcp</server_name> <tool_name>check_connection</tool_name> <arguments></arguments> </use_mcp_tool> - 根据您需要执行的逆向工程任务,参考 “主要功能点” 介绍,使用其他可用的工具,并根据工具的参数要求,在 '<arguments>' 标签中提供相应的参数 (JSON 格式)。
注意事项
- 首次安装或更新插件后,可能需要重启 IDA Pro 才能使插件生效。
- 配置 MCP 客户端时,请务必将服务器配置中的仓库路径替换为您的实际路径。
- 使用 MCP 工具时,请参考工具的描述和参数说明,确保提供正确的参数。
信息
分类
桌面与硬件