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 MCP 는 Model 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 에이전트 모두에 유용. |
시작하기 (빠른 시작 요약)
- 사전 요구 사항 – Java 21, Maven 3.9+, Ghidra 12.1.2, Python 3.10+ (uv 권장). OS에 맞는 시스템 패키지를 설치 (Ubuntu/Debian, macOS Homebrew, Arch AUR 패키지 모두 문서화됨).
- 클론 및 사전 점검
git clone https://github.com/bethington/ghidra-mcp.git && cd ghidra-mcp python -m tools.setup preflight --ghidra-path <path‑to‑ghidra> - 빌드 및 배포 –
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> - 브리지 실행 – 서버는 세 가지 전송 옵션으로 시작할 수 있습니다:
- 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 - 클라이언트 구성 – MCP 대응 클라이언트(예: Claude Code, Autohand Code, 오픈소스 MCP Inspector)에 stdio 명령어 또는 HTTP URL을 지정하여 서버를 추가합니다.
일반적인 사용 사례
- 자동 리버스 엔지니어링 파이프라인 – 바이너리 로드, 문서화 워크플로우 실행, 후속 분석을 위한 구조화된 JSON 내보내기.
- AI 지원 코드 이해 – 대규모 언어 모델 에이전트가 디컴파일, 데이터 흐름, 리네임 제안을 서버에 질의한 후 일관된 주석을 작성.
- 라이브 디버깅 지원 – AI 어시스턴트가 디버거 브리지를 통해 실행 중인 프로세스에 연결해 코드를 단계적으로 실행하고, 실시간으로 P-code 상태를 질의.
- 버전 간 지식 공유 – 해시 기반 문서 전파를 통해 동일 제품의 여러 릴리스 간 주석을 동기화 가능.
프로젝트 건강 지표 (시ール드에서)
- 테스트 – 모든 푸시마다 CI 실행.
- 릴리스 – 버전화된 릴리스가 공개됨.
- OpenSSF Scorecard – 보안 감사 점수가 공개됨.
- 활성 커뮤니티 – 토론, 이슈 트래커, 스폰서십 옵션 제공.
요약하면: ghidra‑mcp 는 Ghidra를 프로그래밍 가능한 AI 친화적 서비스로 바꾸는 실제 작동 중이며, 지속적으로 유지보수되는 브리지입니다. AI 보조 리버스 엔지니어링과 자동 바이너리 분석의 선도 기술 영역에 위치하고 있습니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트