astroicers/Ghidra-MCP-WSL-Auto

GitHub: astroicers/Ghidra-MCP-WSL-Auto

一键在 WSL2 上部署 Ghidra 与 GhidraMCP 插件,让 AI 助手通过 MCP 协议直接访问逆向分析结果,实现 AI 辅助的二进制分析工作流。

Stars: 1 | Forks: 0

# Ghidra-MCP-WSL-Auto [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) [![Shell: Bash](https://img.shields.io/badge/Shell-Bash-4EAA25?logo=gnubash&logoColor=white)](https://www.gnu.org/software/bash/) [![Platform: WSL2](https://img.shields.io/badge/Platform-WSL2-0078D4?logo=windows&logoColor=white)](https://docs.microsoft.com/en-us/windows/wsl/) 一键部署 **Ghidra** 逆向工程平台及 **[GhidraMCP](https://github.com/LaurieWired/GhidraMCP)** (Model Context Protocol) 插件于 **WSL2 Ubuntu/Debian** 环境。 ## 功能特色 - 自动检测 WSL2 环境、安装 OpenJDK 21 及所有系统依赖 - 从 GitHub Release 自动下载最新版 Ghidra(支持断点续传) - 自动安装 GhidraMCP 插件(处理双层 ZIP 解包) - 建立 Python venv 隔离环境安装 MCP SDK - 双模式 MCP 连接:Claude Code CLI(推荐)或 API Key - 一键启动器 `ghidra-mcp`(同时启动 Ghidra + MCP Bridge) - 幂等设计:重复执行安全,已完成步骤自动跳过 - GitHub API rate limit 自动重试(指数退避,最多 3 次) ## 快速开始 ``` git clone https://github.com/astroicers/Ghidra-MCP-WSL-Auto.git cd Ghidra-MCP-WSL-Auto sudo ./install.sh ``` 安装完成后,重新加载 PATH 并启动: ``` source /etc/profile.d/ghidra.sh ghidra-mcp # 啟動 Ghidra + MCP Bridge ``` ### 首次启动设置 首次启动 Ghidra 后,需启用 GhidraMCP 插件: 1. **File** → **Configure** → **Developer** → 勾选 **GhidraMCPPlugin** 2. 关闭 Ghidra 3. 再次执行 `ghidra-mcp`(启动器会自动设置插件 port) ### Claude Code 连接 ``` npm install -g @anthropic-ai/claude-code claude mcp add --transport sse ghidra http://127.0.0.1:60006/sse ``` ### Port 架构 | 组件 | Port | 说明 | |------|------|------| | Ghidra 插件 HTTP Server | 60005 | 插件内置 HTTP API(可通过 `.env` 中 `GHIDRA_PLUGIN_PORT` 自定义) | | MCP Bridge SSE Server | 60006 | Claude Code 连接端点(可通过 `.env` 中 `MCP_SERVER_PORT` 自定义) | ## 系统要求 - **宿主 OS**: Windows 10 (22H2+) 或 Windows 11 - **WSL**: WSL 2 + Ubuntu 22.04 LTS 或更新版本 - **RAM**: 8GB 最低(建议 16GB+) - **磁盘**: 至少 5GB 可用空间 - **网络**: 需连接 GitHub、OpenJDK 镜像、Python PyPI ## 安装选项 ``` sudo ./install.sh # 標準安裝 sudo ./install.sh --verbose # 詳細輸出模式 sudo ./install.sh --skip-update # 跳過 apt update/upgrade sudo ./install.sh --no-interactive # 跳過互動式連接模式設定 sudo GHIDRA_VERSION=11.3.1 ./install.sh # 指定 Ghidra 版本 sudo GHIDRA_XMX=8192 ./install.sh # 指定 JVM 記憶體 (MB) sudo ./install.sh --uninstall # 移除所有已安裝元件 ``` ## MCP 连接模式 安装过程中会提示选择 MCP 连接模式: ### 模式一:Claude Code CLI(推荐) 在 WSL 中安装 [Claude Code](https://docs.anthropic.com/en/docs/claude-code) CLI,直接连接 GhidraMCP Server: ``` # 安裝 Claude Code npm install -g @anthropic-ai/claude-code # 啟動(會引導登入 Anthropic 帳號) claude ``` 将 GhidraMCP 加入 Claude Code 的 MCP Server: ``` claude mcp add --transport sse ghidra http://127.0.0.1:60006/sse ``` **使用流程:** 1. 启动 Ghidra + MCP Bridge:`ghidra-mcp` 2. 在 Ghidra 中打开要分析的二进制文件 3. 在另一个终端启动 Claude Code:`claude` 4. Claude 即可通过 MCP 协议访问 Ghidra 的反汇编结果 ### 模式二:API Key 安装时选择 API Key 模式,支持 OpenAI / Anthropic / 自定义提供者。 API Key 安全存储于 `/opt/ghidra-mcp/GhidraMCP/.env`(chmod 600)。 | 提供者 | API Key 管理 | |--------|-------------| | OpenAI | [API Keys](https://platform.openai.com/api-keys) | | Anthropic (Claude) | [API Keys](https://console.anthropic.com/settings/keys) | ## 项目结构 ``` Ghidra-MCP-WSL-Auto/ ├── install.sh # 主安裝腳本 ├── scripts/ # F1~F3 模組化子腳本 │ ├── check_env.sh # 環境檢測與依賴安裝 │ ├── setup_ghidra.sh # Ghidra 自動部署 │ └── setup_mcp.sh # GhidraMCP 插件整合 ├── config/ # 模板文件 │ ├── .env.template # MCP 連接模式設定模板 │ └── ghidra.desktop # Linux 桌面快捷方式 ├── bin/ # 啟動器(install 時自動產生) ├── tests/ # bats 測試(38 個驗證案例) │ ├── test_helper.bash │ ├── check_env.bats │ ├── install.bats │ ├── setup_ghidra.bats │ └── setup_mcp.bats ├── docs/ # 所有文件 │ ├── SRS.md # 需求規格書 │ ├── architecture.md # 系統架構 │ ├── adr/ # 架構決策記錄 │ └── specs/ # 技術規格書 └── Makefile # 開發指令 ``` ## 开发 ``` make help # 查看所有可用指令 make build # 語法檢查 make lint # shellcheck 靜態分析 make test # 執行 bats 測試 make adr-list # 查看架構決策記錄 make spec-list # 查看技術規格書 ``` ## 文档 - [docs/SRS.md](docs/SRS.md) — 需求规格书 - [docs/architecture.md](docs/architecture.md) — 系统架构 - [docs/adr/](docs/adr/) — 架构决策记录 - [docs/specs/](docs/specs/) — 技术规格书 ## 授权 / License [MIT License](LICENSE)
标签:AI辅助安全研究, API集成, Claude Code, DAST, DNS 反向解析, Ghidra, GhidraMCP, JS文件枚举, LLM集成, MCP, MITM代理, OpenJDK, Python虚拟环境, SSE Server, Windows Subsystem for Linux, WSL2, 二进制分析, 云安全运维, 云资产清单, 可观测性, 大模型安全, 应用安全, 开发生态, 恶意软件分析, 服务器发送事件, 模型上下文协议, 特权提升, 自动化部署, 逆向工具, 逆向工程