Ghidra MCP 서버 – AI 기반 리버스 엔지니어링을 위한 110개 도구 제공

3 days ago 5

  • Ghidra MCP Server는 Ghidra의 리버스 엔지니어링 기능을 AI 및 자동화 프레임워크와 연결하는 Model Context Protocol(MCP) 서버
  • 110개의 MCP 도구와 132개 엔드포인트를 통해 함수 분석, 데이터 구조 탐색, 문자열 추출 등 광범위한 바이너리 분석 기능 제공
  • 배치 처리, 원자적 트랜잭션, 실시간 분석을 지원하며, Docker 배포 및 헤드리스 모드로 운영 가능
  • Cross-binary 문서 전이 기능을 통해 서로 다른 바이너리 버전 간 함수 문서화를 자동 매칭
  • AI 기반 리버스 엔지니어링 워크플로우를 프로덕션 수준의 안정성으로 구현할 수 있는 플랫폼

개요

  • Ghidra MCP Server는 Ghidra의 분석 엔진을 AI 도구 및 자동화 시스템과 연결하는 프로덕션급 MCP 서버
    • Model Context Protocol을 완전 구현하여 AI 모델과의 상호작용을 지원
    • Ghidra의 기능을 HTTP REST 및 MCP 프로토콜(stdio/SSE)로 노출

주요 기능

  • Core MCP 통합
    • MCP 완전 호환, 110개 MCP 도구 제공, 배치 연산 및 원자적 트랜잭션 지원
    • Ghidra의 분석 엔진과 실시간 통합
  • 바이너리 분석
    • 함수 디컴파일, 호출 그래프, 교차 참조, 데이터 구조 자동 생성
    • 문자열 추출, 심볼 테이블 분석, 메모리 매핑, Cross-binary 문서 전이 기능 포함
  • 개발 및 자동화
    • 빌드-테스트-배포-검증 자동화 파이프라인
    • Ghidra 스크립트 생성·실행·관리, 다중 프로그램 비교, 대량 이름 변경 및 주석 처리

설치 및 실행

  • 필수 구성요소: Java 21 LTS, Apache Maven 3.9+, Ghidra 12.0.2, Python 3.8+
  • 설치 절차
    • 저장소 클론 후 Python 의존성 설치
    • Ghidra 라이브러리 14개 복사 후 Maven으로 빌드
    • Ghidra 확장 폴더에 플러그인 배포
  • 실행 방식
    • Stdio 전송(기본, AI 도구용) 또는 SSE 전송(Web/HTTP 클라이언트용) 선택
    • Ghidra 내에서 Tools > GhidraMCP > Start MCP Server 실행

성능 및 안정성

  • 110개 MCP 도구 완전 구현, 대부분의 연산에서 1초 미만 응답 속도
  • API 호출 93% 감소를 달성하는 배치 연산 구조
  • 모든 연산은 원자적 트랜잭션으로 처리되어 신뢰성 확보
  • 버전 인식 자동 배포 스크립트 제공

API 구성

  • 핵심 연산: 연결 확인, 메타데이터 조회, 버전 정보, 엔트리 포인트 탐색
  • 함수 분석: 함수 목록, 이름 검색, 디컴파일, 호출 관계 그래프, 문서 완성도 평가
  • 메모리 및 데이터: 세그먼트 목록, 디스어셈블, 교차 참조, 메모리 내용 검사
  • Cross-binary 문서화: 함수 해시 생성, 문서 내보내기/적용, 해시 기반 매칭
  • 데이터 타입 관리: 구조체·열거형 생성, 필드 수정, 중복 타입 병합
  • 심볼 및 라벨 관리: 임포트/익스포트 목록, 문자열 분석, 네임스페이스 및 전역 변수 관리
  • 이름 변경 및 주석 처리: 함수·데이터·변수 이름 변경, 대량 주석 설정
  • 타입 시스템: 함수 프로토타입 지정, 변수 타입 설정, 호출 규약 조회
  • Ghidra 스크립트 관리: 스크립트 목록, 실행, 저장, 수정, 삭제
  • 다중 프로그램 지원: 열린 프로그램 전환, 프로젝트 파일 목록, 문서 비교
  • 분석 도구: 정의되지 않은 함수 탐색, 문자열 기반 검색, 바이트 패턴 탐색

아키텍처

  • AI/Automation 도구 ↔ MCP Bridge ↔ Ghidra Plugin 구조
    • bridge_mcp_ghidra.py: MCP 프로토콜을 HTTP 호출로 변환하는 Python 서버
    • GhidraMCP.jar: Ghidra 기능을 HTTP로 노출하는 Java 플러그인
    • ghidra_scripts/: 70개 이상의 자동화 스크립트 포함

개발 및 빌드

  • Maven 기반 빌드 및 PowerShell 배포 스크립트 제공
  • 프로젝트 구조는 Python 서버, Java 플러그인, Ghidra 라이브러리, 문서, 예제, 빌드 스크립트로 구성
  • 필수 라이브러리 14개(약 37MB) 를 Ghidra 설치 경로에서 복사 필요
  • 자동 배포, 배치 연산, 원자적 트랜잭션, 상세 로깅 기능 포함

문서 및 AI 워크플로우

  • docs/ 폴더에 전체 문서, 프로젝트 구조, 명명 규칙, 헝가리안 표기법 포함
  • AI 워크플로우 프롬프트: 함수 문서화, 버전 간 매칭, 빠른 시작 프롬프트 제공
  • 릴리스 기록: CHANGELOG.md 및 docs/releases에 버전별 상세 내역 수록

라이선스 및 상태

  • Apache License 2.0 적용
  • 버전 2.0.0, 110개 MCP 도구 완전 구현, 70개 이상 Ghidra 스크립트 포함
  • 프로덕션 환경 배포 준비 완료, AI 기반 리버스 엔지니어링에 적합

관련 프로젝트

  • re-universe: PostgreSQL 기반 대규모 바이너리 유사성 분석 플랫폼
  • cheat-engine-server-python: 동적 메모리 분석 및 디버깅용 MCP 서버

감사

  • Ghidra 팀, Model Context Protocol 개발진, 커뮤니티 기여자들에게 감사 표시

Read Entire Article