前言

当前 LLM 已能辅助完成部分静态分析工作。本文介绍如何将官方 Hex-Rays IDA MCP 接入 Agent,并通过 IDALib 以无头模式(headless)分析目标二进制或 .i64 数据库。本文以 Pi Agent 为例,同时提供官方插件安装与 MCP Adapter 手动配置两种方式

无头模式的工作模式:

Agent
│ MCP stdio
▼
官方 ida-mcp
│
▼
IDALib / idat worker
│
▼
目标二进制或 .i64 数据库

一键安装

如果使用常规安装安装了 IDA 那么可以一键安装MCP
Claude Code:

claude plugin marketplace add HexRaysSA/claude-marketplace
claude plugin install ida-mcp@HexRaysSA

Codex CLI:

codex plugin marketplace add HexRaysSA/codex-marketplace
codex plugin add ida-mcp@HexRaysSA

Pi:
(需要安装git)

pi install git:github.com/HexRaysSA/ida-mcp@latest

GitHub Copilot CLI:

copilot plugin marketplace add HexRaysSA/copilot-marketplace
copilot plugin install ida-mcp@HexRaysSA

手动安装

如果上述一键安装不适用,那么可以手动安装
新装IDA 先启动GUI一次 接受许可协议

准备工作

需要准备的东西如下:

安装与配置

现在开始安装与配置

使用winget安装

这是最方便也是最推荐的,Windows 10 1809 及以上版本通常可使用 winget:

打开PowerShell终端,直接输入

winget install --id Python.Python.3.12 -e
winget install --id astral-sh.uv -e

将会自动安装Python312 与 uv (交互输入选择Y)

手动安装

如果提示winget命令不存在那么可以参考这篇文章来安装winget,或是手动安装Python312和uv:

Python312

打开Python官方下载页面:https://www.python.org/downloads/windows/
下载Windows Install(64-bit) 或 Windows Install(32-bit)(一般都是64-bit)
下载完成后打开,记得勾选Add python.exe to PATH,保留pip 和 Python Launcher
点击Install Now
安装结束后关闭并重新打开 PowerShell

uv

在 PowerShell 中执行官方安装脚本:

powershell -ExecutionPolicy Bypass -c "irm https://astral.sh/uv/install.ps1 | iex"

安装脚本默认将 uv.exe、uvx.exe 放到当前用户的本地可执行目录,并加入用户 PATH。重新打开 PowerShell 后即可使用

如果不允许执行 PowerShell 脚本,也可以从 GitHub Releases 手动下载 Windows x64 版本:https://github.com/astral-sh/uv/releases/latest
下载后解压 uv-x86_64-pc-windows-msvc.zip,将其中的 uv.exe 和 uvx.exe 放到 %USERPROFILE%\\.local\\bin
然后将该目录加入到用户 PATH

配置

激活IDALib

IDALib 是 IDA 的库模式接口,可在不启动 GUI 的情况下进行分析

cd到IDA的安装目录

cd D:\IDA Professional 9.4

然后

python ".\idalib\python\py-activate-idalib.py" -d "D:\IDA Professional 9.4"

注意:-d选项后面是输入IDA安装目录的绝对路径

该命令会生成或更新:%APPDATA%\Hex-Rays\IDA Pro\ida-config.json
配置文件应指向IDA安装目录

配置ida-headless到Agent

本节仅适用于使用 pi-mcp-adapter 的用户。若已通过 pi install git:github.com/HexRaysSA/ida-mcp@latest 安装官方 Pi 扩展,无需再添加此配置

打开%USERPROFILE%\.pi\agent\mcp-adapter.json
添加如下配置,需要根据你的当前环境进行替换

{
  "mcpServers": {
    "ida-headless": {
      "command": "uvx",
      "args": [
        "--exclude-newer=1s",
        "ida-mcp",
        "stdio",
        "--agent=pi-mcp-adapter"
      ],
      "env": {
        "IDADIR": "D:\\IDA Professional 9.4",
        "IDA_NEXUS_IDALIB_ONLY": "1"
      },
      "lifecycle": "lazy-keep-alive",
      "idleTimeout": 30,
      "requestTimeoutMs": 600000,
      "toolPrefix": "server",
      "description": "Official Hex-Rays IDA MCP using headless IDALib",
      "openUi": false
    }
  }
}

如果 Pi 找不到 uvx,那么就要将 command 改成 uvx 的绝对路径,例如:

"command": "C:\\Users\\你的用户名\\.local\\bin\\uvx.exe"

保存配置后,重启或重新加载 Agent
Pi 可在聊天框中输入 /reload 重新加载配置

图片.png

此时就可以使用LLM来调用IDAPro进行静态分析了。