업데이트로 돌아가기
New releaseJul 25, 2026

ghidra-mcp v6.0.0

MCP 서버가 Ghidra의 리버스 엔지니어링과 AI 도구를 연결합니다: 디컴파일, P-코드 에뮬레이션, 실시간 디버깅, 데이터 흐름 분석, 배치 작업, 규칙 적용을 위한 256개의 도구를 헤드리스 및 GUI 모드에서 제공합니다.

공유

Ghidra MCP 서버

MCP Toplist

Tests Release License GitHub Sponsors

Python Java Ghidra MCP

Stars Last commit Discussions Issues OpenSSF Scorecard

이 프로젝트가 유용하다면 ⭐ 스타를 눌러 주세요 — 다른 사람들이 발견하는 데 도움이 됩니다!

Ghidra MCP가 시간을 절약해 준다면 프로젝트 후원을 고려해 보세요. 일회성 후원과 정기 후원 모두 호환성 업데이트, 프로덕션 강화, 문서, 새로운 도구 개발에 자금을 지원합니다.

Ghidra의 강력한 리버스 엔지니어링 기능과 현대적인 AI 도구 및 자동화 프레임워크를 연결하는 프로덕션 레디 Model Context Protocol (MCP) 서버입니다. 253개의 MCP 도구, 실전에서 검증된 AI 워크플로, 그리고 현존하는 가장 포괄적인 Ghidra-MCP 통합을 제공합니다 — 이제 P-code 에뮬레이션, 라이브 디버거 통합, PCode-graph 데이터 흐름 분석까지 포함합니다.

Ghidra MCP를 사용하는 이유

대부분의 Ghidra MCP 구현은 몇 개의 읽기 전용 도구만 제공하고 끝입니다. 이 프로젝트는 다릅니다 — 데모가 아니라 실제 바이너리에서 매일 사용하는 리버스 엔지니어가 만들었습니다.

  • 253개의 MCP 도구 — 경쟁 구현보다 3배 많습니다. 읽기 작업뿐만 아니라 이름 변경, 타입 지정, 주석 작성, 구조체 생성, 스크립트 실행, P-code 에뮬레이션, 라이브 디버깅을 위한 완전한 쓰기 접근을 제공합니다.
  • 실전에서 검증된 AI 워크플로 — 수백 개의 함수에서 다듬어진 입증된 문서화 워크플로(V5). 단계별 프롬프트, 헝가리안 표기법 참조, 배치 처리 가이드, 고아 코드 발견 기능을 포함합니다.
  • 프로덕션급 신뢰성 — 원자적 트랜잭션, 배치 작업(API 호출 93% 감소), 구성 가능한 타임아웃, 우아한 오류 처리. 조용한 실패는 없습니다.
  • 바이너리 간 문서 전송 — SHA-256 함수 해시 매칭으로 바이너리 버전 간에 문서를 자동으로 전파합니다. 한 번 문서화하면 어디든 적용됩니다.
  • 완전한 Ghidra Server 통합 — 공유 Ghidra 서버 연결, 저장소 관리, 버전 관리, 체크아웃/체크인 워크플로, 다중 사용자 협업을 지원합니다.
  • 헤드리스 및 GUI 모드 — Ghidra GUI와 함께 또는 없이 실행할 수 있습니다. CI/CD 파이프라인과 대규모 자동 분석을 위한 Docker 지원.
  • 설계부터 의견이 반영됨 — v5.0은 명명 규칙, 타입 안전성, 문서화 표준을 도구 계층으로 옮깁니다. AI 에이전트와 인간 엔지니어가 모든 프롬프트에 스타일 가이드를 붙여넣지 않고도 일관된 결과를 만들어냅니다.

규칙 강제

누구나 겪어봤을 것입니다: 프로젝트를 시작한 지 6개월 후 같은 코드베이스에서 ProcessItem, process_items, handleItem, ItemProc을 발견합니다 — 같은 일을 하는 네 개의 함수가 공유된 규약 없이 네 개의 서로 다른 세션 또는 엔지니어에 의해 명명된 것입니다. 고치는 데 필요 이상으로 오래 걸리고, 문제는 다시 발생할 것입니다.

v5.0은 규약을 "기억해야 할 것"에서 실제로 강제할 수 있는 도구 계층으로 옮깁니다.

계층동작예시
자동 수정조용히 적용됨uint32의 count 필드 → 저장 시 자동으로 dwCount 접두사 추가
경고변경은 통과되지만 경고 반환processData → "이름은 동사와 함께 PascalCase여야 합니다: ProcessData"
거부설명과 함께 변경 차단undefined → undefined 타입 변경 → "no-op 거부됨, 타입 변경 없음"

AI 에이전트에게 이것은 모든 세션, 모든 모델, 모든 실행에서 일관된 결과를 의미합니다 — 모든 프롬프트에 스타일 가이드를 붙여넣지 않고도 말입니다. 도구가 규칙을 알고 있고, 모델은 판단만 하면 됩니다.

팀에게 이것은 "그건 우리 명명 규칙이 아닙니다"라는 리뷰 코멘트 전체 범주를 제거합니다. 규약 중재는 코드 리뷰가 아니라 도구에 남습니다.

대규모 단독 작업에서 analyze_function_completeness는 0–100% 점수를 정직하게 측정합니다: 구조적 감점(고칠 수 없는 컴파일러 산출물)은 실효 점수에서 용서되고, 로그 스케일링은 하나의 나쁜 범주가 모든 것을 묻어버리는 것을 방지하며, 계층화된 플레이트 주석 품질은 무엇이 왜 빠졌는지 정확히 알 수 있게 해줍니다.

🌟 기능

핵심 MCP 통합

  • 완전한 MCP 호환성 — Model Context Protocol의 완전한 구현
  • 253개의 MCP 도구 — 바이너리 분석의 모든 측면을 아우르는 포괄적인 API 표면
  • 프로덕션 레디 신뢰성 — 원자적 트랜잭션, 배치 작업, 구성 가능한 타임아웃
  • 실시간 분석 — Ghidra의 분석 엔진과의 라이브 통합

호환성 참고: MCP 도구 이름은 GitHub Copilot CLI 및 CAPI 검증을 위해 정규화됩니다. 노출되는 도구 이름은 소문자, 숫자, 밑줄, 하이픈만 사용합니다. /debugger/status와 같은 중첩 HTTP 경로는 정적 브리지 도구와의 충돌을 피하기 위해 필요할 때 debugger_status_2와 같은 이름으로 광고됩니다.

바이너리 분석 기능

  • 함수 분석 — 디컴파일, 호출 그래프, 상호 참조, 완성도 점수
  • 데이터 흐름 분석 — 모든 변수 또는 레지스터로부터의 PCode-graph 값 전파(정방향 / 역방향)
  • 데이터 구조 발견 — 필드 분석 및 명명 제안과 함께 구조체/공용체/열거형 생성
  • 문자열 추출 — 정규식 검색, 품질 필터링, 문자열 기반 함수 발견
  • 가져오기/내보내기 분석 — 심볼 테이블, 외부 위치, 서수 가져오기 해석
  • 메모리 및 데이터 검사 — 원시 메모리 읽기, 바이트 패턴 검색, 배열 경계 감지
  • 바이너리 간 문서화 — 함수 해시 매칭 및 버전 간 문서 전파

동적 분석 (v5.4.0)

  • P-code 에뮬레이션 — Ghidra의 EmulatorHelper를 통해 모든 함수를 격리 실행; 밀리초 단위로 API 해시 무차별 대입 해석
  • 라이브 디버거 통합 — Ghidra의 TraceRmi 프레임워크를 통한 17개의 Java 엔드포인트 + 22개의 Python 브리지 도구(Windows PE에서는 dbgeng, 그 외에는 gdb/lldb): attach, step, 브레이크포인트, 레지스터, 메모리 읽기, 비중단 함수 추적, ASLR 인식 정적↔동적 주소 변환

AI 기반 리버스 엔지니어링 워크플로

  • 함수 문서화 워크플로 V5 — 헝가리안 표기법, 타입 감사, 자동 검증 점수를 포함한 완전한 함수 문서화를 위한 7단계 프로세스
  • 배치 문서화 — 여러 함수를 동시에 문서화하기 위한 병렬 서브에이전트 디스패치
  • 고아 코드 발견 — 알려진 코드 사이의 간극에서 발견되지 않은 함수를 찾는 자동 스캐너
  • 데이터 타입 조사 — 구조체 발견 및 필드 분석을 위한 체계적인 워크플로
  • 버전 간 매칭 — 서로 다른 바이너리 버전 간의 해시 기반 함수 매칭

개발 및 자동화

  • Ghidra 스크립트 관리 — MCP를 통해 완전히 Ghidra 스크립트를 생성, 실행, 업데이트, 삭제
  • 다중 프로그램 지원 — 여러 열린 프로그램 간 전환 및 비교
  • 배치 작업 — 대량 이름 변경, 주석 작성, 타입 지정, 레이블 관리(API 호출 93% 감소)
  • 헤드리스 서버 — Ghidra GUI 없이 완전한 분석 — Docker 및 CI/CD 지원
  • 프로젝트 및 버전 관리 — 프로젝트 생성, 파일 관리, Ghidra Server 통합
  • 분석 제어 — 프로그래밍 방식으로 Ghidra 분석기 나열, 구성, 트리거

🚀 빠른 시작

사전 요구 사항

  • Java 21 LTS (OpenJDK 권장)
  • Apache Maven 3.9+
  • Ghidra 12.1.3 (또는 호환 버전)
  • Python 3.10+ 및 uv (권장) 또는 pip + venv

공유 Ghidra Server 사용자: Ghidra 12.1.3 클라이언트는 Ghidra Server 12.1, 12.0.5 또는 그 이상의 호환 버전이 필요합니다. 12.1 클라이언트에서 이 플러그인을 사용하기 전에 서버를 업그레이드하세요.

Ghidra 12.1.3은 Jython을 선택적 확장으로 제공합니다. Java 스크립트는 기본적으로 작동하지만, ghidra_scripts/의 .py 스크립트는 File > Install Extensions에서 Jython 확장을 설치하고 Ghidra를 재시작해야 합니다.

설치

모든 플랫폼에 권장: python -m tools.setup을 직접 사용하세요.

ensure-prereqs는 런타임 Python 요구 사항과 로컬 Maven 저장소에 필요한 Ghidra JAR을 설치합니다. deploy는 빌드 출력을 복사하고, 사용자 프로필 확장을 설치하며, Ghidra 사용자 구성을 패치합니다.

  1. 저장소를 클론합니다: ```bash git clone https://github.com/bethington/ghidra-mcp.git cd ghidra-mcp
  2. 권장: 먼저 환경 사전 점검을 실행하세요: ```text python -m tools.setup preflight --ghidra-path "F:\ghidra_12.1.3_PUBLIC"
  3. Ghidra로 빌드 및 배포: ```text python -m tools.setup ensure-prereqs --ghidra-path "F:\ghidra_12.1.3_PUBLIC" python -m tools.setup build python -m tools.setup deploy --ghidra-path "F:\ghidra_12.1.3_PUBLIC"

deploy는 필요할 때 이미 실행 중인 일치하는 Ghidra 인스턴스를 저장/종료하고, 확장을 설치하고, Ghidra를 시작하고, MCP 상태를 기다린 후 스키마 스모크 검사를 실행합니다.

카테고리