bethington/ghidra-mcp

Ghidra 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.

Ghidra MCP Server – 무엇인가요

Ghidra MCPModel Context Protocol (MCP) 를 통해 Ghidra의 리버스 엔지니어링 엔진을 노출하는 프로덕션 준비된 서버입니다. 실제로 외부 프로그램(예: AI 에이전트, CI 파이프라인, 사용자 정의 스크립트)이 풍부하고 타입 안정적인 API를 통해 GUI 및 헤드리스 모드의 Ghidra 설치를 제어할 수 있게 해줍니다.

왜 중요한가요

  • 풀기능 API – 253개의 MCP "도구"는 Ghidra가 할 수 있는 모든 작업을 커버합니다: 심볼 읽기/쓰기, 구조체 생성, 디컴파일, P-code 에뮬레이션, 라이브 디버거 연결, Ghidra Server 프로젝트 관리 등.
  • AI 친화적 – 서버는 이름 규칙과 점수 기반 로직을 강제하여 대규모 언어 모델 보조자가 스타일 가이드를 각 프롬프트에 포함하지 않고도 일관성 있고 스타일에 부합하는 출력을 생성할 수 있도록 합니다.
  • 프로덕션 수준 – 원자적 트랜잭션, 배치 작업(API 호출 약 90% 감소), 설정 가능한 타임아웃, 견고한 에러 처리로 자동화 파이프라인에 안전하게 사용 가능합니다.
  • 다중 바이너리 문서화 – 함수는 SHA-256 해시로 식별되며, 한 번 작성된 문서는 동일 바이너리의 새로운 버전에 자동으로 전파됩니다.
  • 헤드리스 및 Docker 대응 – Ghidra GUI 없이도 실행 가능하여 CI/CD, 클라우드 서비스, 대규모 배치 분석에 적합합니다.

핵심 기능 (README에 기재된 내용)

카테고리 주요 기능
MCP 통합 완전한 Model Context Protocol 구현; 253개 도구; 원자적 트랜잭션; 배치 모드; 실시간 분석.
정적 바이너리 분석 디컴파일, 콜 그래프, 크로스 리퍼런스, 완전성 점수, 데이터 흐름(P-code 그래프) 분석, 구조체/열거형 탐지, 문자열 추출, 임포트/익스포트 검사, 원시 메모리 읽기.
동적 분석 (v5.4.0) Ghidra의 EmulatorHelper를 통한 P-code 에뮬레이션; 라이브 디버거 브리지(17개 Java + 22개 Python 엔드포인트); Windows(dbgeng) 및 Unix(gdb/lldb) 디버거 지원, 브레이크포인트, 레지스터/메모리 접근, ASLR 대응 주소 변환.
AI 기반 워크플로우 다단계 함수 문서화 파이프라인(헝가리안 표기법, 타입 감사, 검증 점수), 병렬 배치 문서화, 고립 코드 탐지, 체계적 구조 탐지, 버전 간 해시 매칭.
자동화 및 DevOps Ghidra 스크립트 관리, 다중 프로그램 처리, 일괄 리네임/코멘트/타입 지정, 헤드리스 서버 모드, Ghidra Server 프로젝트/버전 제어, 프로그래밍 가능한 분석기 제어.
규칙 강제 이름, 타입, 기타 규칙에 대한 계층적 규칙 시스템(자동 수정, 경고, 거부) – 인간 팀과 AI 에이전트 모두에 유용.

시작하기 (빠른 시작 요약)

  1. 사전 요구 사항 – Java 21, Maven 3.9+, Ghidra 12.1.2, Python 3.10+ (uv 권장). OS에 맞는 시스템 패키지를 설치 (Ubuntu/Debian, macOS Homebrew, Arch AUR 패키지 모두 문서화됨).
  2. 클론 및 사전 점검
    git clone https://github.com/bethington/ghidra-mcp.git && cd ghidra-mcp
    python -m tools.setup preflight --ghidra-path <path‑to‑ghidra>
    
  3. 빌드 및 배포tools.setup 헬퍼는 Ghidra JAR를 로컬 Maven 저장소에 설치하고, 확장 기능을 빌드한 후 Ghidra의 Extensions/ 폴더로 복사합니다.
    python -m tools.setup ensure-prereqs --ghidra-path <path>
    python -m tools.setup build
    python -m tools.setup deploy --ghidra-path <path>
    
  4. 브리지 실행 – 서버는 세 가지 전송 옵션으로 시작할 수 있습니다:
    • stdio (기본값) – AI 도구가 JSON을 stdin/stdout로 파이프하는 데 이상적입니다.
    • streamable‑http – 웹 클라이언트나 브라우저용 가벼운 HTTP 엔드포인트 (/mcp).
    • sse – 폐기된 오래된 스트리밍 모드.
    uv run bridge-mcp-ghidra            # stdio
    uv run bridge-mcp-ghidra --transport streamable-http --mcp-port 8081
    
  5. 클라이언트 구성 – MCP 대응 클라이언트(예: Claude Code, Autohand Code, 오픈소스 MCP Inspector)에 stdio 명령어 또는 HTTP URL을 지정하여 서버를 추가합니다.

일반적인 사용 사례

  • 자동 리버스 엔지니어링 파이프라인 – 바이너리 로드, 문서화 워크플로우 실행, 후속 분석을 위한 구조화된 JSON 내보내기.
  • AI 지원 코드 이해 – 대규모 언어 모델 에이전트가 디컴파일, 데이터 흐름, 리네임 제안을 서버에 질의한 후 일관된 주석을 작성.
  • 라이브 디버깅 지원 – AI 어시스턴트가 디버거 브리지를 통해 실행 중인 프로세스에 연결해 코드를 단계적으로 실행하고, 실시간으로 P-code 상태를 질의.
  • 버전 간 지식 공유 – 해시 기반 문서 전파를 통해 동일 제품의 여러 릴리스 간 주석을 동기화 가능.

프로젝트 건강 지표 (시ール드에서)

  • 테스트 – 모든 푸시마다 CI 실행.
  • 릴리스 – 버전화된 릴리스가 공개됨.
  • OpenSSF Scorecard – 보안 감사 점수가 공개됨.
  • 활성 커뮤니티 – 토론, 이슈 트래커, 스폰서십 옵션 제공.

요약하면: ghidra‑mcp 는 Ghidra를 프로그래밍 가능한 AI 친화적 서비스로 바꾸는 실제 작동 중이며, 지속적으로 유지보수되는 브리지입니다. AI 보조 리버스 엔지니어링과 자동 바이너리 분석의 선도 기술 영역에 위치하고 있습니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트