Skip to content
KitploitKITPLOIT
도구블로그
Log in
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
pyghidra-mcp — Python 명령줄 Ghidra MCP | Kitploit
도구/GitHubGitHub/clearbluejar/pyghidra-mcp
Embedded Systems SecurityStatic AnalysisCode AnalysisReverse EngineeringDebuggersMalware AnalysisBinary AnalysisLearning & EducationAI-Assisted ReversingFirmware Analysis
GitHubclearbluejar/pyghidra-mcp
40455265일 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

pyghidra-mcp

Python 명령줄 Ghidra MCP

저장소 보기

GitHub Workflow Status (with event) PyPI - Downloads

PyGhidra-MCP - Ghidra 모델 컨텍스트 프로토콜 서버

개요

**pyghidra-mcp**는 강력한 소프트웨어 리버스 엔지니어링(SRE) 제품군인 Ghidra의 모든 분석력을 지능형 에이전트와 LLM 기반 도구의 세계로 가져오는 명령줄 Model Context Protocol(MCP) 서버입니다. pyghidra와 jpype를 사용하여 Ghidra의 ProgramAPI 및 FlatProgramAPI를 Python에 연결한 다음, 해당 기능을 Model Context Protocol을 통해 노출합니다.

MCP는 언어 모델, 개발 도구(VS Code 등), 자율 에이전트가 구조화된 컨텍스트에 접근하고 도구를 호출하며 지능적으로 협업할 수 있게 해주는 통합 인터페이스입니다. MCP를 강력한 분석 도구와 LLM 생태계 사이의 다리로 생각하면 됩니다.

pyghidra-mcp를 사용하면 Ghidra는 지능형 백엔드가 됩니다. 컨텍스트가 풍부한 쿼리에 응답하고, 심층 리버스 엔지니어링 작업을 자동화하며, AI 지원 워크플로우에 통합될 준비가 되어 있습니다.

pyghidra-mcp는 이제 두 가지 작동 모드를 지원합니다:

  • CLI 기반 분석 및 자동화를 위한 headless 모드
  • --gui 모드 - pyghidra-mcp를 통해 Ghidra를 실행하고 실행 중인 GUI와 실시간 프로그램 상태를 공유합니다.

[!NOTE] 이 베타 프로젝트는 활발히 개발 중입니다. 피드백, 버그 보고, 기능 요청, 코드 기여를 환영합니다.

또 다른 Ghidra MCP?

네, 원조 ghidra-mcp도 훌륭합니다. 하지만 pyghidra-mcp는 다른 접근 방식을 취합니다:

  • 🐍 Headless 우선, GUI 지원 – 간소화된 자동화를 위해 CLI로만 실행하거나, 실시간 GUI 탐색 및 편집이 필요할 때 --gui로 Ghidra를 실행할 수 있습니다.
  • 🔁 자동화 중심 설계 – LLM, CI 파이프라인, 반복 가능한 동작이 필요한 도구와의 통합에 이상적입니다.
  • ✅ CI/CD 친화적 – 클라이언트 및 서버 세션 모두를 위한 견고한 단위 테스트와 통합 테스트로 구축되었습니다.
  • 🚀 빠른 시작 – 비동기 시작으로 바이너리가 백그라운드에서 계속 분석되는 동안에도 서버가 요청 처리를 시작할 수 있습니다. 최소한의 설정으로 빠른 명령줄 실행을 지원합니다.
  • 📦 프로젝트 전체 분석 – Ghidra 프로젝트의 모든 바이너리에 대한 동시 리버스 엔지니어링을 지원합니다.
  • 🤖 에이전트 사용 준비 완료 – 지능형 에이전트 기반 워크플로우와 대규모 리버스 엔지니어링 자동화를 위해 설계되었습니다.
  • 🔍 의미론적 코드 검색 – ChromaDB를 통한 벡터 임베딩을 사용하여 디컴파일된 함수, 주석, 심볼 전반에 걸친 빠른 퍼지 검색을 지원합니다. 유사-C 탐색과 에이전트 기반 분류에 완벽합니다.

이 프로젝트는 로컬 개발, headless 환경, 테스트 가능한 워크플로우에 최적화된 Python 우선 경험을 제공합니다.

설정 다이어그램

구성 요소 간 연결 방식```mermaid

flowchart LR subgraph Clients["Clients"] Agent["MCP host / agent"] Cli["pyghidra-mcp-cli"] User["Ghidra user"] end

subgraph Process["pyghidra-mcp process"]
    Transport["stdio or streamable-http"]
    Tools["MCP tools"]
    Context["PyGhidra context"]
end

Project["Ghidra project<br/>.gpr / .rep"]
Artifacts["MCP artifacts<br/>ChromaDB + GZF cache"]
Gui["Ghidra GUI / CodeBrowser<br/>only with --gui"]

Agent -->|"stdio or HTTP"| Transport
Cli -->|"HTTP only"| Transport
Transport --> Tools
Tools --> Context
Context --> Project
Context --> Artifacts
Context -.-> Gui
User -.-> Gui
Gui -.-> Project
### 모드 선택```mermaid
flowchart TD
    Start["What do you need?"]
    Start --> Headless["Agent or automation only"]
    Start --> GuiNeed["Live Ghidra GUI control"]
    Start --> Terminal["Interactive terminal client"]

    Headless --> Stdio["pyghidra-mcp -t stdio<br/>or -t streamable-http"]
    GuiNeed --> GuiMode["pyghidra-mcp --gui<br/>--transport streamable-http<br/>--project-path project.gpr"]
    Terminal --> HttpServer["Start pyghidra-mcp<br/>--transport streamable-http"]
    HttpServer --> CliMode["Run pyghidra-mcp-cli commands"]
  • Headless MCP: 로컬 MCP 호스트에는 stdio를 사용하고, 여러 클라이언트가 동일한 장기 실행 Ghidra 프로젝트를 필요로 할 때는 streamable-http를 사용하세요.
  • GUI 모드: pyghidra-mcp는 Ghidra를 실행하고 프로젝트를 열어 동일한 JVM에서 CodeBrowser를 제어하는 추가 도구를 노출합니다.
  • CLI 클라이언트: pyghidra-mcp-cli는 HTTP 클라이언트입니다. 먼저 streamable-http 서버를 시작한 다음, 실행 중인 서버를 대상으로 터미널 명령을 실행하세요.
상세 아키텍처 및 도구 구성```mermaid flowchart TD subgraph Clients Agent["LLM / MCP host"] Cli["pyghidra-mcp-cli"] Automation["scripts and CI"] end
subgraph Transports
    Stdio["stdio"]
    Http["streamable-http"]
    Sse["sse legacy"]
end

subgraph Server["pyghidra-mcp server"]
    FastMcp["FastMCP tool server"]
    Context["PyGhidra context"]
    Indexing["background analysis and Chroma indexing"]

    subgraph Tools["MCP tools"]
        Analysis["decompile, xrefs, bytes, callgraph"]
        Search["symbols, strings, code"]
        ProjectOps["import, delete, metadata, list binaries"]
        Edits["rename function, rename variable, set type, set prototype, set comment"]
        GuiOnly["GUI only: open program, goto, list open programs, set current program"]
    end
end

subgraph GhidraRuntime["Ghidra runtime"]
    PyGhidra["pyghidra"]
    Jpype["JPype shared JVM"]
    Project["Ghidra project"]
    Programs["program databases"]
    CodeBrowser["Ghidra GUI / CodeBrowser"]
end

Agent --> Stdio
Agent --> Http
Automation --> Stdio
Automation --> Http
Automation --> Sse
Cli --> Http

Stdio --> FastMcp
Http --> FastMcp
Sse --> FastMcp

FastMcp --> Context
Context --> PyGhidra
PyGhidra --> Jpype
Jpype --> Project
Project --> Programs
Context --> Indexing
Indexing --> Search

FastMcp --> Tools
Tools --> Context
GuiOnly -.-> CodeBrowser
Context -.-> CodeBrowser
</details>

## 목차

- [PyGhidra-MCP - Ghidra 모델 컨텍스트 프로토콜 서버](#pyghidra-mcp---ghidra-model-context-protocol-server)
    - [개요](#overview)
  - [또 다른 Ghidra MCP?](#yet-another-ghidra-mcp)
  - [설정 다이어그램](#setup-diagrams)
    - [구성 요소가 연결되는 방식](#how-the-pieces-connect)
    - [모드 선택](#choosing-a-mode)
  - [목차](#contents)
  - [시작하기](#getting-started)
  - [에이전트에 최적화](#optimized-for-agents)
  - [CLI 클라이언트](#cli-client)
    - [설치](#installation)
    - [CLI 빠른 시작](#quick-start-with-cli)
  - [프로젝트 생성, 관리 및 기존 프로젝트 열기](#project-creation-management-and-opening-existing-projects)
    - [새 프로젝트 만들기](#creating-new-projects)
      - [자체 포함 프로젝트 구조](#self-contained-project-structure)
      - [기본 프로젝트 생성](#basic-project-creation)
      - [사용자 지정 프로젝트 생성](#custom-project-creation)
      - [여러 관련 프로젝트 만들기](#creating-multiple-related-projects)
    - [기존 Ghidra 프로젝트 열기](#opening-existing-ghidra-projects)
      - [.gpr 파일로 열기](#opening-by-gpr-file)
    - [GUI 모드](#gui-mode)
    - [시작 기본값 및 대형 프로젝트](#startup-defaults-and-large-projects)
  - [개발](#development)
    - [설정](#setup)
    - [테스트 및 품질](#testing-and-quality)
  - [API](#api)
    - [도구](#tools)
      - [일괄 작업](#batch-operations)
      - [읽기 / 분석 도구](#read--analysis-tools)
      - [프로젝트 작업](#project-operations)
      - [편집 / 변형 도구](#edit--mutation-tools)
      - [GUI 제어 도구 (`--gui` 전용)](#gui-control-tools---gui-only)
  - [사용법](#usage)
    - [Docker로 바이너리 매핑](#mapping-binaries-with-docker)
    - [OpenWeb-UI 및 MCPO와 함께 사용하기](#using-with-openweb-ui-and-mcpo)
      - [`uvx` 사용](#with-uvx)
      - [Docker 사용](#with-docker)
    - [표준 입력/출력 (stdio)](#standard-inputoutput-stdio)
      - [Python](#python)
      - [Docker](#docker)
    - [Streamable HTTP](#streamable-http)
      - [Python](#python-1)
      - [Docker](#docker-1)
    - [서버 전송 이벤트 (SSE)](#server-sent-events-sse)
      - [Python](#python-2)
      - [Docker](#docker-2)
  - [통합](#integrations)
    - [Claude Desktop](#claude-desktop)
  - [영감](#inspiration)
  - [기여, 커뮤니티, 그리고 소스에서 실행하기](#contributing-community-and-running-from-source)
    - [기여자 워크플로우](#contributor-workflow)

## 시작하기
도구 다운로드