GitHub TrendingAI · 머신러닝

bethington/ghidra-mcp

Ghidra와 AI를 잇는 MCP 서버, 253개 도구로 리버싱 자동화

원제 bethington/ghidra-mcp

스타 4,274당일 +112Java
Key Point

AI 에이전트가 리버싱 작업을 자동화할 때 Ghidra의 강력한 기능을 직접 활용 가능해지며, 명명 규칙 자동 강제와 배치 작업으로 수작업 오버헤드를 크게 줄인다.

핵심 요약

  • Ghidra의 강력한 리버싱 기능을 Model Context Protocol(MCP)을 통해 AI 도구에 노출하는 서버로, 253개의 MCP 도구를 제공한다.
  • 읽기 전용이 아닌 전체 쓰기 접근을 지원하여 함수 이름 변경, 타입 설정, 주석 추가, 구조 생성, 스크립트 실행, P-code 에뮬레이션, 라이브 디버깅이 가능하다.
  • 명명 규칙을 도구 계층에 내장해 자동 수정(Auto-fix), 경고(Warn), 거부(Reject) 세 단계로 일관성을 강제하며, AI 에이전트는 매 세션마다 수동으로 스타일 가이드를 입력할 필요가 없다.
  • PCode 에뮬레이션을 통해 함수를 격리 실행하고, Ghidra의 TraceRmi 프레임워크로 17개 Java 엔드포인트 + 22개 Python 브리지 도구를 제공해 Windows PE의 dbgeng과 리눅스의 gdb/lldb를 지원한다.
  • 배치 작업으로 API 호출을 93% 줄이며, SHA-256 함수 해시 매칭으로 여러 바이너리 버전 간에 문서를 자동 전파한다.
  • Ghidra Server 통합으로 공유 서버 연결, 저장소 관리, 버전 제어, 체크인/체크아웃 워크플로우, 다중 사용자 협업을 지원한다.
  • 함수 문서화 V5 워크플로우로 7단계 프로세스를 제공하며, 헝가리안 표기법, 타입 감사, 자동 검증 점수 매기기를 포함한다.
  • 지연 로딩(Lazy loading)을 기본값으로 제공하여 연결 시 기본 도구 그룹만 로드하고, search_tools/load_tool_group으로 필요한 도구를 동적으로 로드한다.
  • Stdio, Streamable HTTP, SSE(deprecated) 세 가지 전송 방식을 지원하며, 엄격한 프로그램 라우팅(GHIDRA_MCP_REQUIRE_PROGRAM_SELECTORS)으로 다중 프로그램 환경에서 실수를 방지한다.
  • Java 21 LTS, Maven 3.9+, Ghidra 12.1.3, Python 3.10+ 필수이며, 리눅스/macOS/Arch Linux 플랫폼 모두에서 설치 가이드와 AUR 패키지를 제공한다.
  • 최소 읽기 전용 허용 목록은 get_metadata, list_methods, get_entry_points, decompile_function 네 개 도구로 시작하며, 좁은 허용 목록에서는 검색 및 그룹 로드 도구도 필요하다.
  • 독립 디버거 서버를 선택적으로 연결 가능하며, GHIDRA_DEBUGGER_URL 환경 변수로 포트/호스트 설정 시 22개 debugger_* 프록시 도구가 자동으로 등록된다.
AI 요약 안내

AI가 한국어로 정리한 내용입니다. 정확한 정보는 원문을 확인해 주세요.

요약 원칙 ↗