Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
ida-pro-mcp — 面向 IDA Pro/Home 的本地优先、确定性 MCP 服务器:109 项严格模式逆向工程操作、有证据支持的发现结果,以及受策略门控的 IDB 编辑。 | Kitploit
工具/GitHubGitHub/grecandrei/ida-pro-mcp
静态分析逆向工程脚本与自动化调试器恶意软件分析实用工具与框架二进制分析AI 辅助逆向AI 安全固件分析
GitHubgrecandrei/ida-pro-mcp

ida-pro-mcp

1531511个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →

面向 IDA Pro/Home 的本地优先、确定性 MCP 服务器:109 项严格模式逆向工程操作、有证据支持的发现结果,以及受策略门控的 IDB 编辑。

查看仓库网站
分享

IDA Pro MCP

⚠️ 已归档 — 已被官方 Hex-Rays IDA MCP 服务器取代

本项目已不再维护。 2026-09-27,Hex-Rays SA 发布了 官方 IDA MCP 服务器 和 IDA Nexus。开发于同日 在 1.0.0a4 版本停止。

如需当前使用,请安装他们的版本:uvx ida-hcli mcp install。它需要 IDA 9.4+ 及 idalib,可完全无头运行;GUI 插件为可选。

本仓库保留用于其测试套件、文档和架构记录。完整收尾说明见 ARCHIVE.md:项目曾是什么、为何失败、哪些部分是脚手架、 哪些部分仍有价值。本 README 的其余部分描述的系统已不再推荐使用。

IDA Pro MCP — 面向 AI 代理的确定性二进制分析

IDA Pro MCP 是面向 IDA Pro 的本地模型上下文协议服务器。它允许 MCP 客户端检查 IDB、向 IDA 请求确定性分析结果,并在明确允许时, 将注释或其他更改写回 IDB。宿主进程在 IDA 之外运行,默认会为每个 会话启动一个独立的 IDA 无头进程。

为何选择此实现

  • 确定性的代理接口: 102 个严格 schema 的 ida_* 操作,可通过 tools/list 和 ida_help 实时发现。
  • 本地优先架构: 宿主与 IDA 运行时通过受令牌保护的环回桥接通信; 分析路径中没有隐藏的 LLM 服务。
  • 证据,而非仅聊天: 持久化发现保留来源、置信度、生命周期状态、 冲突和审计历史,均存储于 IDB 之外。
  • 受保护的变更: 更改 IDB 的操作仍受显式策略和风险确认控制。
  • 广泛的客户端支持: 安装器可识别 22 种以上代理环境及其 JSON、 JSON5、TOML 和 YAML 配置形态。

当前版本为 1.0.0a4。这是 alpha 软件。公开的 ida_* 操作名称、 schema 和工作区格式在稳定版 1.0.0 发布前可能发生变化。默认客户端接口 包含 102 个精确 schema 操作。请使用实时发现获取完整契约:tools/list 枚举每个操作及其 schema,ida_help(topic="...") 返回单个操作的精确 参数和示例。

安装前须知

你需要:

  • IDA Pro 或 IDA Home 9.2 或更高版本,并具备可用的 idat/idat64 可执行文件。仓库的实时测试证据覆盖 IDA 9.3 和 9.4;9.2 是声明的 兼容性下限。
  • Python 3.11 或更高版本,用于宿主和安装器。
  • 有权在你计划检查的二进制文件上运行 IDA,并有足够的磁盘空间用于 受管理的 Python 环境、会话文件和 IDB 副本。
  • 支持本地 stdio 服务器的 MCP 客户端,例如 Claude Code、Codex、 OpenCode、Claude Desktop、Cursor、VS Code/Copilot、Windsurf、Cline、 Roo Code、Gemini CLI 或 Antigravity。

常规分析不需要智能提供方。显式智能模式为 jev、custom 和 disabled;禁用模式保留确定性词法搜索可用,且没有本地、Gemini 或 原生模型回退。

默认运行时为 idat:每个会话一个无头 IDA 进程。idalib 后端为 实验性,需要 IDA 9.3 或更新版本的安装并激活 idapro 包,首次安装 无需使用。

从源码检出安装

安装器会在安装根目录下创建受管理环境,将检出的冻结副本安装到其中, 并为支持的客户端位置写入客户端配置。在仓库根目录下运行:

python3 install.py

对于已知的 IDA 安装,请显式传入:

python3 install.py --ida-dir /path/to/ida-pro-9.3

对于非交互式运行:

python3 install.py --yes --no-ida-prompt --ida-dir /path/to/ida-pro-9.3

安装程序还可以通过 IDADIR、IDA_DIR、PATH 上的 IDA 可执行文件以及常见安装目录来查找 IDA。当存在多个安装时,--ida-version 用于选择版本。请先使用 --dry-run 查看计划中的更改。

安装程序绝不会下载提供程序模型或运行时。它可能会为其内置客户端映射中的每个客户端位置创建或更新配置文件,包括未安装在您机器上的客户端。请检查安装根目录中的 install-report.json,必要时删除未使用的条目。现有的常规配置文件在更改前会被备份;格式错误、符号链接或非常规文件将被拒绝,而不会被覆盖。

安装后请重启 MCP 客户端,以便其重新加载配置。

Agent harnesses 会实时发现工具接口:tools/list 会枚举每个操作及其 schema,ida_help(topic="...") 会返回确切的参数和一个示例。不会安装静态技能文件。

默认安装根目录为:

  • Linux 和 macOS:~/.local/share/ida-pro-mcp
  • Windows:%LOCALAPPDATA%/ida-pro-mcp

设置 IDA_PRO_MCP_HOME 或传入 --install-root 以选择其他位置。

从发布产物安装

Alpha 版本由 GitHub Actions 构建,并作为预发布版本手动发布。当有可用发布版本时,请从发布页面下载 bundle.zip 或 bundle.tar.gz 资产及其 SHA256SUMS 文件。验证校验和,解压捆绑包,并从其顶层目录运行安装程序:

python3 install.py --yes --no-ida-prompt --ida-dir /path/to/ida-pro-9.3

发布包还包含用于脚本化 Python 安装的 wheel 和源码分发包。捆绑包是最简单的途径,因为它包含安装程序以及配置 MCP 客户端所需的全部项目文件。发布版本为 alpha 质量;升级前请保留原始二进制文件和 IDB,并阅读发布说明。

连接 MCP 客户端

安装程序会为其已知的客户端配置路径写入服务器条目。它支持 Gemini CLI、Antigravity、Antigravity IDE、Antigravity CLI、Claude Code、Codex、Copilot CLI、OpenCode、Claude Desktop、Cursor、VS Code、Windsurf、Cline 和 Roo Code。 OpenCode 和 Copilot 系列客户端使用不同的配置结构;请让安装程序写入这些文件,或遵循 OpenCode 设置指南。

对于使用通用 JSON 格式的客户端,该条目等同于:

{
  "mcpServers": {
    "ida-pro-mcp": {
      "command": "/path/to/ida-pro-mcp/.venv/bin/python",
      "args": ["-u", "-m", "ida_pro_mcp.host.server"],
      "env": {
        "IDA_PRO_MCP_HOME": "/path/to/ida-pro-mcp",
        "IDADIR": "/path/to/ida-pro-9.3",
        "IDA_MCP_TOOL_SURFACE": "agent"
      }
    }
  }
}

在 Windows 上,请使用位于 <install-root>/.venv/Scripts/python.exe 的托管解释器。关键细节包括 托管解释器、-u -m ida_pro_mcp.host.server、所选的 IDA 目录,以及 IDA_MCP_TOOL_SURFACE=agent。不要将客户端指向 install.py;该文件是安装程序,而不是 MCP 服务器。

更改客户端配置后,请完全重启客户端,并检查 ida_help 是否出现在其可用操作中。如果客户端仅显示 旧版宽泛的 tool(action=...) 接口,请检查环境是否选择了 默认的 agent 表面,而不是 IDA_MCP_TOOL_SURFACE=legacy。

第一次有用的会话

首先使用测试二进制文件的绝对路径。打开二进制文件通常会等待 IDA 的初始分析完成;大型二进制文件可能需要一些时间。

ida_open_binary(binary_path="/absolute/path/to/sample")
ida_session_status()
ida_overview()
ida_list_imports(limit=30)
ida_list_strings(query="http", limit=30)
ida_find(query="main", limit=20)
ida_decompile(address="<address returned by IDA>")
ida_xrefs_to(address="<same address>")

每当需要精确的参数 schema 时,请使用 ida_help(topic="ida_decompile")。公共操作的 schema 是严格的:未知参数会被拒绝。根据各个操作的约定,地址可以接受为整数或字符串;请在你的客户端中使用 ida_help 为该操作所显示的形式。

对于小型调查记录,工作区发现操作如下:

ida_write_finding(title="Input reaches parser", address="<address returned by IDA>", kind="finding", status="confirmed", confidence=0.8, evidence=[{"type":"call", "value":"recv", "address":"<evidence address>"}])
ida_analysis_brief()
ida_next_target()
ida_export_findings(format="markdown")

工作区发现结果与 IDB 编辑分开保存。如果当前策略允许工作区写入,ida_write_finding 会在本地记录一条发现结果;否则服务器会返回策略错误。ida_publish_findings(dry_run=true) 会预览 IDB 变更。发布、重命名、打补丁以及其他 IDB 变更操作都受策略门控,并且在操作提供确认机制时,需要按照该操作的文档要求进行确认。

操作一览

首页保持以任务为导向,但这个紧凑索引让公开接口易于浏览。下面每个名称在调用时都会加上 ida_ 前缀。完整的 schema 和示例可通过 tools/list 和 ida_help(topic="...") 实时获取。

分组操作
会话open_binary、open_background、session_state、session_status、session_health、close_session、session_get、session_list、sso_activate、agent_login、agent_logout、session_switch
发现overview、find、semantic_search、intelligence_status、usage_status、usage_report、reranker_status、index_functions、index_status、cancel_index、list_functions、list_strings、list_imports、list_types、list_segments、list_sigs、sreg_get、sreg_list、auto_wait、events、registers、search_data_value、search_query_lang
情报intelligence_status、usage_status、usage_report
代码decompile、disassemble、compare_functions、diff_sessions、xrefs_to、callers、callees、read_bytes、get_type、callgraph、emulate
发现结果write_finding、mark_examined、list_findings、search_findings、update_finding、export_findings、publish_findings、import_annotations、analysis_brief、next_target
编辑create_function、change_function、rename、comment、patch_bytes、save_idb、make_code、undefine、rename_local、declare_type、apply_type、add_segment、set_segment_attrs、apply_sig、sreg_set、create_data、create_strlit、undo_begin、undo_end、add_entry、idb_snapshot、idb_restore_snapshot、struct_member_add、struct_member_del、struct_member_rename、struct_member_set_type、enum_member_add、enum_member_rename、enum_member_revalue、til_delete、til_export、til_import、import_system_map、mark_dangerous
计算calc_eval、calc_offset、calc_convert、calc_resolve、calc_deref、calc_chain、calc_align、calc_bitops
支持python、continue、help
工作流batch

哪些操作安全,哪些不安全

服务器的基线策略是 assist。会话可以收紧操作员的基线策略,但不能放宽它。该策略是确定性的;它不会因为客户端请求就判定某个高风险操作是安全的。

只读检查是正常的起点。示例包括 ida_overview、ida_find、ida_list_functions、ida_list_strings、ida_list_imports、ida_decompile、ida_disassemble、ida_xrefs_to、ida_callers、ida_callees、ida_callgraph、ida_read_bytes 以及各项计算操作。这些操作仍会消耗本地文件和 IDA 资源,并且 MCP 客户端会收到它们的结果。

以下操作会更改持久状态或执行代码,应被视为高影响操作:

  • ida_rename、ida_comment、ida_patch_bytes、函数/类型/段/数据 变更、签名应用、ida_save_idb、快照以及撤销/恢复 操作都可能更改 IDB 或相关状态。
  • ida_publish_findings 会将发现写入 IDB。请先运行其试运行形式; 非试运行形式受门控限制。
  • ida_close_session 会拆除正在运行的 IDA 运行时,从 会话的角度来看具有破坏性。
  • ida_python 会在活动的 IDA 进程中执行任意 Python。它在安全模式下 被阻止,并且在正常策略下需要显式的风险确认。
  • ida_emulate 对于受控检查很有用,但会改变状态的模拟器操作 需要相应的确认。
  • ida_til_export 和 ida_til_import 会访问文件系统并受门控限制。 在适用该防护的情况下,文件系统路径受配置的内存根目录约束。
下载工具