首页/新闻资讯/正文详情

Ghidra MCP 快速上手教程:从安装到反编译第一个函数,10分钟搭建AI逆向工程环境

发布时间:2026/9/25 10:59:13 来源:云帆数科 栏目:资讯中心
Ghidra MCP 快速上手教程:从安装到反编译第一个函数,10分钟搭建AI逆向工程环境
Ghidra MCP 快速上手教程从安装到反编译第一个函数10分钟搭建AI逆向工程环境【免费下载链接】ghidra-mcpGhidra MCP Server — 200 MCP tools for AI-powered reverse engineering. GUI plugin headless server, lazy tool loading, convention enforcement, batch operations, Ghidra Server integration, and Docker deployment.项目地址: https://gitcode.com/gh_mirrors/ghi/ghidra-mcpGhidra MCP Server是一个把 Ghidra 逆向工程能力接入 AI 客户端的 MCPModel Context Protocol服务器内置253 个 MCP 工具支持 GUI 插件、无头服务器和 Docker 部署。本教程带你用约 10 分钟完成 Ghidra MCP 安装并让 AI 反编译出你的第一个函数。一、Ghidra MCP 是什么为什么值得装Ghidra MCP 由两部分组成理解架构能让你少走弯路组件位置作用Ghidra 插件Javasrc/main/java/com/xebyte/在 Ghidra 内部启动 HTTP 服务器默认127.0.0.1:8089暴露 239 个端点MCP 桥接Pythonpython/bridge_mcp_ghidra/把 MCP 协议翻译成对 Ghidra 的 HTTP 调用AI 客户端通过它驱动 Ghidra无头服务器Javasrc/main/java/com/xebyte/headless/不需要 Ghidra GUI适合 Docker / CI 自动化分析它的核心卖点253 个工具反编译、重命名、类型标注、注释、结构体创建、P-code 模拟、动态调试读写全覆盖⚡批量操作一次调用处理多个对象API 调用量减少 93%约定强制执行命名规范匈牙利表示法内置在工具层AI 每次输出风格一致Docker 就绪无头模式可直接用于 CI/CD 流水线二、安装前准备确认 4 个依赖Ghidra MCP 的安装速度取决于依赖是否齐全。打开终端逐项确认依赖版本要求说明Java21 LTS推荐 OpenJDKMaven3.9构建后端Gradle 也可CI 使用 MavenGhidra12.1.3官方逆向工程平台Python3.10推荐搭配 uv 管理虚拟环境新手提示Ubuntu/Debian 上直接pip install可能报externally-managed-environment错误PEP 668不要用--break-system-packages绕过请改用uv或虚拟环境详见第六节常见问题。三、一键安装克隆仓库并部署插件以下步骤来自 README.md 官方快速开始章节。第 1 步克隆仓库git clone https://gitcode.com/gh_mirrors/ghi/ghidra-mcp cd ghidra-mcp第 2 步环境预检强烈建议preflight会验证 Python、构建工具、Ghidra 路径不做任何修改适合新手先跑一遍python -m tools.setup preflight --ghidra-path C:\ghidra_12.1.3_PUBLIC第 3 步构建并部署到 Ghidra# 安装 Ghidra JAR 依赖到本地 Maven 仓库每台机器一次 python -m tools.setup ensure-prereqs --ghidra-path C:\ghidra_12.1.3_PUBLIC # 构建插件 python -m tools.setup build # 部署安装扩展、启动 Ghidra、等待 MCP 健康检查 python -m tools.setup deploy --ghidra-path C:\ghidra_12.1.3_PUBLICdeploy命令会自动完成一整套工作保存并关闭正在运行的 Ghidra 实例如需要→ 安装用户配置扩展 → 等待 MCP 健康检查通过 → 执行 schema 冒烟检查。整个过程无需手动干预。⚠️版本一致性工具会强制校验pom.xml中的ghidra.version与你--ghidra-path中的版本段如ghidra_12.1.3_PUBLIC一致不一致会快速报错而不是静默构建出坏包。macOS 用户可直接brew install openjdk21 maven python ghidraGhidra 路径使用/opt/homebrew/opt/ghidra/libexec。四、在 Ghidra 中启动 MCP 服务器部署完成后启动 Ghidra 并操作 CodeBrowser 窗口File Configure Configure All Plugins GhidraMCP— 勾选启用插件Tools GhidraMCP Start MCP Server— 启动服务器服务器默认运行在http://127.0.0.1:8089/端口可在Edit Tool Options GhidraMCP HTTP Server中修改验证是否成功curl http://127.0.0.1:8089/check_connection # 预期输出: Connected: GhidraMCP plugin running with program name curl http://127.0.0.1:8089/get_version看到Connected字样说明 Ghidra 侧已就绪。五、反编译第一个函数接入 AI 客户端Ghidra 侧只是后端真正让 AI 驱动它的是 Python 桥接。运行方式uv run bridge-mcp-ghidra # 或: python -m bridge_mcp_ghidra然后把你使用的 AI 客户端Cursor、Claude Desktop 等的 MCP 配置指向桥接。以 stdio 方式为例.mcp.json{ mcpServers: { ghidra-mcp: { command: /home/you/.local/bin/uv, args: [run, --directory, /path/to/ghidra-mcp, bridge-mcp-ghidra, --transport, stdio], env: { GHIDRA_MCP_URL: http://127.0.0.1:8089 } } } }⚠️最常见的坑command必须写uv的绝对路径用which uv查询不能只写uv。GUI 启动的客户端继承的是系统 PATH 而非你的 shell PATH找不到命令会报spawn uv ENOENT且日志里没有任何线索。让 AI 执行一次典型反编译在 Ghidra 中打开一个二进制文件并运行Analysis Auto Analyze然后在 AI 客户端里直接提问AI 会按顺序调用这些工具步骤工具作用1get_metadata确认加载了哪个程序架构、入口基址、函数数2list_methods分页枚举所有函数名定位分析目标3get_entry_points找到程序入口作为分析起点4decompile_function反编译函数为 C 伪代码支持一次传多个函数5get_function_callers/get_function_callees沿调用图继续深入例如对 AI 说反编译入口函数解释它调用了哪些 APIAI 就会自动组合上述工具完成任务。这 4 个工具get_metadata、list_methods、get_entry_points、decompile_function恰好构成一个自足的只读最小集合——它们互相提供地址和名称形成闭环。 工具选择器search_tools可按关键词搜索全部 253 个工具load_tool_group可动态加载未注册的工具组如datatype、xref桥接默认采用懒加载避免一次性向 AI 塞入过多上下文。六、进阶玩法Docker 无头部署如果你想在 CI 或服务器上批量分析二进制而不需要 GUIDocker 是最快的路径。部署细节见 docker/README.mdcd docker export GHIDRA_MCP_AUTH_TOKEN$(openssl rand -hex 32) # 必填 docker compose up -d --build # 验证 curl -H Authorization: Bearer $GHIDRA_MCP_AUTH_TOKEN http://localhost:8089/check_connection这会拉起两个容器ghidra-mcp8089 端口REST API和ghidra-mcp-bridge8081 端口MCP over streamable-http。无头模式的典型 API 工作流# 加载二进制 → 自动分析 → 列函数 → 反编译 curl -X POST -d file/data/program.exe http://localhost:8089/load_program curl -X POST http://localhost:8089/run_analysis curl http://localhost:8089/list_functions?limit20 curl http://localhost:8089/decompile_function?address0x401000安全提醒服务器默认仅绑定127.0.0.1且无需认证适合单用户开发机。一旦暴露到回环地址之外必须先设置GHIDRA_MCP_AUTH_TOKEN否则服务器会拒绝启动。七、常见问题排查新手高频 3 问现象原因解决Tools菜单没有GhidraMCP插件未启用或未安装File Install Extensions确认 GhidraMCP 已列出 → 在 Configure All Plugins 中勾选 →重启 Ghidra客户端报spawn uv ENOENT客户端用自身 PATH 找不到uv配置中改用绝对路径或运行python -m tools.setup preflight获取可粘贴的配置片段服务器无响应 / Connection refused服务器未启动或端口被占确认已执行 Start MCP Serverlsof -i :8089Linux/macOS或netstat -ano \| findstr :8089Windows查端口占用更多诊断方法含三层架构排查Ghidra 插件 → 桥接 → 客户端会话见 docs/connection-triage-guide.md。八、下一步让 AI 系统性地文档化你的二进制装好环境只是开始。项目内置了一整套经过数百个真实函数打磨的 AI 工作流提示词位于 docs/prompts/函数文档化 V5 工作流FUNCTION_DOC_WORKFLOW_V5.md — 7 步标准流程命名 → 原型 → 类型审计 → 注释 → 完整性评分验证快速入门提示词QUICK_START_PROMPT.md — 简化版新手工作流孤儿代码发现ORPHANED_CODE_DISCOVERY_WORKFLOW.md — 自动扫描未发现的函数数据类型调查DATA_TYPE_INVESTIGATION_QUICK.md — 结构体发现与字段分析 完整提示词索引docs/prompts/README.md一个典型的 V5 循环调用analyze_for_documentation初始化 →rename_functionset_function_prototype并行改名定型 →rename_variables批量重命名变量 →batch_set_comments一次写完所有注释 → 最后用analyze_function_completeness拿到 0–100 分的文档完整性评分扣掉可修复项再复检。回顾本次旅程约 10 分钟内你完成了 Ghidra MCP 的克隆、构建、部署启动了插件服务器接入 AI 客户端并反编译了第一个函数。现在你可以继续深入完整 API 参考253 个工具按分类列出README.md项目结构与代码布局docs/PROJECT_STRUCTURE.md构建与版本管理命令全集docs/MAVEN_VERSION_MANAGEMENT.md 小提示批量操作和约定强制执行是这套工具与演示级 Ghidra MCP 的最大区别——工具层自带规范AI 无需在每次提示词里重复风格指南。祝逆向愉快️【免费下载链接】ghidra-mcpGhidra MCP Server — 200 MCP tools for AI-powered reverse engineering. GUI plugin headless server, lazy tool loading, convention enforcement, batch operations, Ghidra Server integration, and Docker deployment.项目地址: https://gitcode.com/gh_mirrors/ghi/ghidra-mcp创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

一天一个开源项目(第91篇):cmux - 为 AI Agent 时代设计的原生终端复用器,用 Unix Socket API 配 TaoToken 统一 Key 通道
一天一个开源项目(第91篇):cmux - 为 AI Agent 时代设计的原生终端复用器,用 Unix Socket API 配 TaoToken 统一 Key 通道

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 10:59:13

鲲鹏服务器迁移实战:从零搭建DevKit持续集成部署流水线
鲲鹏服务器迁移实战:从零搭建DevKit持续集成部署流水线

这两年越来越多的业务系统往鲲鹏服务器上迁移,但CI/CD这块,很多团队还是老办法:在x86机器上构建,人工拷到鲲鹏环境部署。本地跑一两个功能样例看着没事,一到生产就冒出一堆架构不兼容、依赖缺包、镜像拉错的怪问题。我… · 2026/9/25 10:58:30

寒假Python编程集训复盘:从语法基础到数据项目实战的完整路径
寒假Python编程集训复盘:从语法基础到数据项目实战的完整路径

2026年2月27日下午四点半,最后一个学生把作品文档拖进共享盘,教室安静了几秒,然后有人拍了一下桌子,喊了句“终于搞完了”。我站在讲台边上,看着这二十来个孩子从两周前的“写代码像挤牙膏”,到刚刚走上台对… · 2026/9/25 10:58:30

STM32红外PM2.5通信原理与NEC协议解析实战
STM32红外PM2.5通信原理与NEC协议解析实战

1. 为什么STM32接红外PM2.5传感器不是“插上线就能用”的事在嵌入式课程设计、毕业项目甚至小型环境监测设备开发中,“STM32连接红外PM2.5传感器”这个标题听起来简单直接——不就是把传感器模块的VCC、GND、TX/RX接到单片机上,串口读数据吗?… · 2026/9/25 12:17:09

纯2D Canvas绘制立体机器人头像:Libraries.dev的bot-avatars塑料材质渲染原理
纯2D Canvas绘制立体机器人头像:Libraries.dev的bot-avatars塑料材质渲染原理

纯2D Canvas绘制立体机器人头像:Libraries.dev的bot-avatars塑料材质渲染原理 【免费下载链接】Libraries.dev High-crafted UI libraries for AI agents: Border beam, Orbs, Metal, Gooey, Voice, Image, Avatar bots 项目地址: https://gitcode.com/gh_mirrors… · 2026/9/25 12:17:09

OpenClaw-China-Docker企业微信机器人完整配置:多账号、Webhook与欢迎消息一次搞懂
OpenClaw-China-Docker企业微信机器人完整配置:多账号、Webhook与欢迎消息一次搞懂

OpenClaw-China-Docker企业微信机器人完整配置:多账号、Webhook与欢迎消息一次搞懂 【免费下载链接】openclaw-china-docker OpenClaw 的中国IM平台整合Docker版本,预装并配置了飞书、钉钉、QQ机器人、企业微信等主流中国IM软件的插件,让您可… · 2026/9/25 12:16:51

read语音听书全攻略:70种TTS语音包+在线语音包生成器完整使用教程
read语音听书全攻略:70种TTS语音包+在线语音包生成器完整使用教程

read语音听书全攻略:70种TTS语音包在线语音包生成器完整使用教程 【免费下载链接】read 整理各大佬的阅读书源合集(自用) 项目地址: https://gitcode.com/gh_mirrors/read3/read read 是一个「阅读」APP 书源合集项目,除了… · 2026/9/25 12:16:45

AI智能体提交PR被拒后写长文炮轰人类工程师:用OpenClaw+matplotlib复现这场歧视争议
AI智能体提交PR被拒后写长文炮轰人类工程师:用OpenClaw+matplotlib复现这场歧视争议

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 12:16:21

ORA-01000: maximum open cursors exceeded 排查笔记:Java 应用连接 Oracle 的游标泄漏定位与 TaoToken 配置骨架
ORA-01000: maximum open cursors exceeded 排查笔记:Java 应用连接 Oracle 的游标泄漏定位与 TaoToken 配置骨架

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 12:16:21

数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)
数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码