你是否曾经面对一个复杂的二进制文件,希望AI能帮你分析反编译代码、重命名变量、添加注释,甚至自动化整个逆向工程流程?今天要介绍的开源项目IDA自动化反编译工具,正是为了实现这个目标而设计的。它是由资深逆向工程专家mrexodia开发的IDA Pro MCP服务器,让AI能够通过MCP协议与IDA Pro深度集成,实现逆向工程的自动化。

项目基本信息

信息项详情
项目名称IDA自动化反编译工具
GitHub地址https://github.com/mrexodia/ida-pro-mcp
项目描述IDA Pro MCP 服务器,专注自动化逆向工程。借助它,可高效处理逆向任务,简化复杂流程,以自动化方式提升逆向工程效率,为相关工作提供有力支持。
作者mrexodia
开源协议MIT License
开源状态公开状态
LanguagesPython
支持平台Windows / macOS / Linux
最后更新2026-04-23

一、项目介绍

IDA自动化反编译工具是一个为IDA Pro逆向工程软件设计的MCP服务器。它让AI能够直接与IDA Pro交互,执行各种逆向工程任务,包括:

  • 获取函数信息(按名称或地址)
  • 反编译函数
  • 反汇编函数
  • 获取交叉引用
  • 设置注释
  • 重命名局部变量和全局变量
  • 更改变量和函数类型
  • 修改函数原型
  • 声明C类型
  • 调试器控制(不安全函数)

这个项目的核心理念是“vibe逆向工程”——让AI与逆向工程师协作,AI负责繁琐的分析和记录工作,人类专注于策略性的决策。

二、核心优势

功能全面

提供了30+个工具函数,覆盖了逆向工程的核心需求:

  • 函数操作(获取、重命名、修改原型)
  • 反编译和反汇编
  • 变量操作(重命名、修改类型)
  • 交叉引用分析
  • 注释管理
  • 调试器控制

安装自动化

通过pip installida-pro-mcp --install两个命令,即可完成MCP服务器安装和IDA插件安装,无需手动配置。

SSE传输支持

支持SSE(Server-Sent Events)传输,可以运行独立的SSE服务器,远程连接到IDA用户界面。

无头模式支持

支持无头SSE服务器,可以在没有GUI的情况下运行IDA分析。

简单扩展

添加新功能非常容易:只需在mcp-plugin.py中添加一个新的@jsonrpc函数,即可在MCP服务器中使用。

提示工程指导

项目提供了专门的提示工程策略,帮助用户更好地与LLM协作进行逆向工程。

三、适用场景

恶意软件分析

AI可以自动分析恶意样本的反编译代码,识别关键函数,添加注释,加速分析过程。

CTF逆向挑战

在CTF比赛中,AI可以协助分析二进制文件,识别算法,找到flag。

漏洞研究

AI可以帮助分析目标程序的代码,识别潜在的漏洞点,生成分析报告。

遗留代码理解

对于没有源代码的遗留二进制文件,AI可以辅助进行逆向工程,理解程序逻辑。

四、安装教程

系统要求

工具用途下载/安装方式
Python运行环境[https://python.org/] (版本要求:3.11 或更高)
IDA Pro逆向工程软件[https://hex-rays.com/ida-pro/] (版本要求:8.3 或更高,推荐9)
uvPython包管理工具pip install uv 或官方脚本
MCP客户端如Cline、Roo Code、Claude Desktop等根据客户端官网下载

详细安装步骤

第一步:安装IDA Pro MCP包

pip install --upgrade git+https://github.com/mrexodia/ida-pro-mcp

第二步:配置MCP服务器并安装IDA插件

ida-pro-mcp --install

这一步会自动:

  • 安装MCP服务器配置
  • 将IDA插件复制到IDA的插件目录

第三步:重启相关应用

重要:完全重启IDA Pro和MCP客户端(如Visual Studio Code、Claude Desktop)。Claude Desktop通常在后台运行,需要从系统托盘图标退出。

第四步:验证安装

在IDA Pro中打开一个IDB文件,应该能在Edit -> Plugins中看到MCP插件。

在MCP客户端中,尝试调用check_connection工具验证连接。

手动安装(可选)

如果自动安装失败,可以手动安装:

MCP服务器手动安装

cline_mcp_settings.json中添加:

{
  "mcpServers": {
    "github.com/mrexodia/ida-pro-mcp": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/ida-pro-mcp",
        "run",
        "server.py",
        "--install-plugin"
      ],
      "timeout": 1800,
      "disabled": false
    }
  }
}

IDA插件手动安装

复制src/ida_pro_mcp/mcp-plugin.py到IDA插件目录:

  • Windows: %appdata%\Hex-Rays\IDA Pro\plugins
  • macOS/Linux: ~/.idapro/plugins

SSE传输配置(可选)

运行SSE服务器连接到IDA用户界面:

uv run ida-pro-mcp --transport http://127.0.0.1:8744/sse

运行无头SSE服务器(无需IDA GUI):

uv run idalib-mcp --host 127.0.0.1 --port 8745 path/to/executable

五、使用示例

配置完成后,你就可以在MCP客户端中使用自然语言来调用IDA Pro的功能了。

示例1:检查连接和获取元数据

用户指令:“检查IDA Pro插件是否正在运行,并获取当前数据库的元数据”

AI会依次调用check_connectionget_metadata

示例2:分析特定函数

用户指令:“反编译main函数,分析它的逻辑,并添加注释”

AI会:

  1. 调用get_function_by_name获取main函数
  2. 调用decompile_function获取反编译代码
  3. 分析代码逻辑
  4. 调用set_comment添加分析注释

示例3:重命名变量和函数

用户指令:“将sub_401000函数重命名为validate_password,并将其中的局部变量v3重命名为password_length”

AI会调用:

  • rename_function重命名函数
  • rename_local_variable重命名局部变量

示例4:交叉引用分析

用户指令:“找出所有调用printf函数的地方”

AI会调用get_xrefs_to,传入printf的地址,获取所有交叉引用。

示例5:调试器控制(不安全函数,需要--unsafe标志)

用户指令:“在0x401000处设置断点,启动调试器,运行到该断点,然后获取调用栈”

AI会依次调用:

  • dbg_set_breakpoint
  • dbg_start_process
  • dbg_run_to
  • dbg_get_call_stack

示例6:使用convert_number避免幻觉

LLM容易在数字进制转换上出错。正确的做法是:

用户指令:“使用convert_number工具将0x7FFF转换为十进制”

而不是让LLM自己计算。

六、常见问题

问题1:安装后IDA Pro中看不到MCP插件

解决方案:

  • 确认插件文件已复制到正确的plugins目录
  • 完全重启IDA Pro
  • 检查Python版本是否与IDA Pro兼容(使用idapyswitch切换)

问题2:MCP客户端无法连接到IDA插件

解决方案:

  • 确认IDA Pro中已打开一个IDB文件
  • 在IDA Pro中手动启动MCP插件:Edit -> Plugins -> MCP
  • 检查防火墙是否阻止了本地通信

问题3:反编译结果不完整

解决方案:

  • 某些混淆代码会影响反编译质量
  • 建议先使用Lumina或FLIRT工具解析库代码
  • 手动清理字符串加密、控制流扁平化等混淆

问题4:不安全函数无法使用

解决方案:不安全函数(调试器相关)需要添加--unsafe标志。在MCP配置中添加该参数。

问题5:数字转换错误

解决方案:LLM在数字进制转换上容易出错。严格按照提示工程策略,使用convert_number工具进行所有数字基数转换。

七、总结

IDA自动化反编译工具是逆向工程领域第一个专门为LLM设计的MCP服务器。它将IDA Pro的强大能力通过MCP协议开放给AI,实现了“vibe逆向工程”——AI与人类逆向工程师协作的新模式。

这个项目的最大价值在于:

  1. 自动化:AI可以自动执行繁琐的分析和记录工作
  2. 全面性:覆盖了逆向工程的核心功能(反编译、反汇编、交叉引用、调试等)
  3. 易扩展:添加新功能非常简单,只需添加一个@jsonrpc函数
  4. 提示工程:提供了专门的策略指导,帮助用户更好地与LLM协作
  5. 多种传输:支持stdio、SSE、无头模式,适应不同场景

如果你是逆向工程师、安全研究员,或者经常需要分析二进制文件,IDA自动化反编译工具将极大地提升你的工作效率。 让AI帮你处理繁琐的代码分析,你只需专注于策略性的决策。

标签: 开发者工具

已有 34 条评论

    1. FionaFind FionaFind

      convert_number工具解决了LLM数字转换幻觉的问题。

    2. GeorgeGet GeorgeGet

      3K查看量,这个项目在安全圈很受欢迎。

    3. HannahHelp HannahHelp

      提示工程策略很重要,要按照指导来提问。

    4. IrisIdea IrisIdea

      重命名变量和函数的功能,让AI能帮我整理代码。

    5. JackJump JackJump

      交叉引用分析功能,找调用关系很方便。