IDA Pro远程控制插件

IDA Pro MCP Server是一个允许通过模型上下文协议(MCP)远程查询和控制IDA Pro的插件,使AI助手能够直接与IDA Pro交互进行二进制分析任务。

  • by taida957789
  • Python
  • 混合部署
  • 191 星标
  • 更新于
在 GitHub 查看 taida957789/ida-mcp-server-plugin

使用说明

IDA Pro MCP服务器

IDA Pro MCP Server是一个插件,允许通过模型上下文协议(MCP)接口远程查询和控制IDA Pro。此插件使AI助手(如Claude)能够直接与IDA Pro交互以执行二进制分析任务。

概述

该服务器提供了一系列工具,允许AI助手执行以下操作:

  • 从特定地址获取字节数据
  • 获取拆卸代码
  • 获取反编译的伪代码
  • 查询函数名称
  • 获取细分市场信息
  • 列出所有功能
  • 查找交叉引用
  • 获取导入/导出表
  • 获取入口点
  • 定义/取消定义函数
  • 获取各种数据类型(dword、word、byte、qword、float、double、string)
  • 获取二进制文件中的所有字符串
  • 获取指定地址的指令长度

安装

注: 此插件专为IDA Pro 9.0+版本设计并经过测试。

  1. 确保已安装Python和相关依赖项:
pip install -r requirements.txt
  1. 复制 ida-mcp-server.py 文件到IDA Pro插件目录:
    • 窗户: %Programfiles%\IDA Pro 9.0\plugins\
    • Linux: ~/.idapro/plugins/
    • macOS: ~/Library/Application Support/IDA Pro/plugins/

配置Claude/VSCode

将以下配置添加到 mcp.json Claude或VSCode中的文件:

{
  "mcpServers": {
    "IDAPro": {
      "url": "http://127.0.0.1:3000/sse",
      "type": "sse"
    }
  }
}

用法

  1. 在IDA Pro中打开二进制文件
  2. 该插件将自动在本地加载并启动MCP服务器(端口3000)
  3. 将您的AI助手(例如Claude)连接到此服务器
  4. 使用AI助手执行二进制分析任务

可用的分析工具

IDA Pro MCP服务器提供以下工具:

  • get_bytes:在指定地址获取字节
  • get_disasm:在指定地址进行拆卸
  • get_decompiled_func:获取包含指定地址的函数的伪代码
  • get_function_name:在指定地址获取函数名
  • get_segments:获取所有细分市场信息
  • get_functions:获取二进制文件中的所有函数
  • get_xrefs_to:获取指定地址的所有交叉引用
  • get_imports:获取所有导入的函数
  • get_exports:获取所有导出的函数
  • get_entry_point:获取二进制文件的入口点
  • make_function:在指定地址创建函数
  • undefine_function:在指定地址取消定义函数
  • get_dword_at:在指定地址获取dword
  • get_word_at:在指定地址获取单词
  • get_byte_at:获取指定地址的字节
  • get_qword_at:在指定地址获取qword
  • get_float_at:获取指定地址的浮点数
  • get_double_at:在指定地址获取双倍值
  • get_string_at:获取指定地址的字符串
  • get_string_list:获取二进制文件中的所有字符串
  • get_strings:获取二进制文件中的所有字符串(带地址)

最佳实践

分析二进制文件时,建议遵循以下步骤:

  1. 检查入口点
  2. 分析导入表
  3. 查看字符串
  4. 跟踪关键API调用
  5. 确定主要功能块
  6. 分析控制流
  7. 识别恶意行为
  8. 分析算法和加密例程
  9. 文件分析结果
  10. 使用先进技术

许可证

MIT许可证

版权所有(c)2023

特此免费向任何获得副本的人授予许可 本软件和相关文档文件(“软件”),以处理 在软件中不受限制,包括但不限于权利 使用、复制、修改、合并、发布、分发、再许可和/或销售 软件的副本,并允许软件的接收者 根据以下条件提供:

上述版权声明和本许可声明应包含在所有 软件的副本或实质性部分。

软件按“原样”提供,不提供任何形式的明示或明示担保 隐含的,包括但不限于适销性保证, 适用于特定目的且不造成伤害。在任何情况下 作者或版权持有人对任何索赔、损害赔偿或其他 因以下原因产生的责任,无论是在合同、侵权或其他诉讼中, 出于或与软件、使用或其他交易有关 软件。