使用说明(简明易懂的操作指南)

  • 项目简介

    • 该项目实现了一个基于 MCP 的后端服务器,用 Go 语言编写,负责管理分析会话、调度 Python 工作进程来对接 IDA Pro 进行分析,并通过 MCP 客户端暴露统一的工具接口,供 LLM 客户端读取资源、执行工具、以及获取和渲染 Prompt 模板。
  • 主要功能点

    • MCP 服务器端:实现对资源、工具和提示模板的标准化暴露,支持通过 MCP 客户端发起请求并得到结构化响应。
    • 会话与资源管理:多会话并发执行,自动持久化会话元数据,支持会话恢复,以及对过期会话的清理。
    • 工具注册与执行:注册大量的分析工具(如打开二进制、获取函数、导入元数据等),并将请求转发给后台的 Python 工作进程处理。
    • Python 工作进程管理:通过 Unix 套接字进行与 IDA 的交互,工作进程独立于客户端请求生命周期,确保长时间任务的稳定性。
    • 传输协议支持:HTTP(可流式传输)和 SSE 等传输模式,方便与不同类型的 MCP 客户端对接。
    • 数据持久化:会话状态可持久化到磁盘,服务器重启后可恢复先前会话。
    • 丰富的工具集合:包含获取字节、反汇编、获取导入/导出表、字符串、引用等多种分析操作,且支持过滤、分页和详细元数据。
  • 安装步骤

    • 需要的软件环境(简要概览):
      • Go 1.21+、Protobuf 相关工具、Python 3.10+、IDA Pro 9.x 及其 ida-lib 库、以及可选的 Il2CppDumper/Blutter 等依赖。
    • 安装与构建的常用流程(概要说明,不包含具体命令行代码块):
      • 将仓库克隆到本地
      • 按 README 提供的方案安装 IDA 的 python 库依赖和所需工具
      • 运行 make build 构建 Go 服务器
      • 启动服务器(将会启动并监听 MCP 的 HTTP/SSE 传输端口)
    • 运行服务器的基本命令与参数(概览)
      • 启动服务器示例:bin/ ida-mcp-server
      • 服务器端口默认为 17300,支持通过命令行参数覆盖端口、最大会话数、会话超时、以及调试模式等开关
      • 服务启动时会创建并管理若干工作进程来对接 IDA,确保多会话并发安全运行
  • 服务器配置(MCP 客户端需要的服务器启动信息)

    • server name: ida-headless
    • command: 指向服务器启动可执行文件,例如 bin/ida-mcp-server
    • args: 诸如 { "port": 17300, "max-sessions": 10, "session-timeout": 240, // 单位为分钟 "debug": false }
    • 说明:以上配置用于 MCP 客户端在连接前了解服务器的启动方式和参数。注意,客户端并不需要修改服务器端代码,只需要知道服务器的启动命令和参数即可建立连接。
  • 基本使用方法

    1. 启动服务器
      • 启动后服务器将对外暴露 MCP HTTP/Stream/ SSE 传输,客户端可通过 MCP 客户端库建立连接并调用工具。
    2. 连接与调用工具
      • 客户端通过标准 MCP 方式连接服务器(HTTP/SSE/Stream),读取可用工具列表(例如 open_binary、get_functions、get_entry_point 等),并按需传参执行相应工具。
    3. 会话管理与持久化
      • 打开二进制文件后会创建一个新的会话,服务器会对会话进行持续管理、自动保存数据库状态、以及在需要时关闭会话。
    4. 与 LLM 客户端协作
      • MCP 客户端(如 Claude 系列等)可以通过标准化接口请求资源、执行工具、获取错误信息或成功结果,并将结果作为上下文信息用于后续对话流程。

信息

分类

开发者工具