clearbluejar/pyghidra-mcp

Python Command-Line Ghidra MCP

해결하는 문제

pyghidra-mcp는 강력한 소프트웨어 역공학(SRE) 스위트인 Ghidra를 AI 에이전트 및 LLM과 연결해 줍니다. 이는 복잡한 바이너리 분석 도구와 LLM 생태계 사이의 간극을 메워, 에이전트가 사람이 직접 GUI를 조작하지 않고도 심층적인 역공학 작업을 자동화하고, 의미론적 코드 검색을 수행하며, Ghidra 프로젝트를 관리할 수 있도록 합니다.

작동 원리

이 프로젝트는 pyghidrajpype를 통해 Ghidra의 Program 및 FlatProgram API를 Python에 연결하는 Model Context Protocol (MCP) 서버를 구현합니다. 두 가지 주요 운영 모드를 제공합니다:

  • Headless Mode: 자동화 및 CI 파이프라인을 위한 CLI 기반 접근 방식.
  • GUI Mode: Ghidra GUI를 실행하여 MCP 서버가 라이브 프로그램 상태를 공유하고 동일한 JVM 내에서 CodeBrowser를 제어할 수 있도록 합니다.

ChromaDB를 벡터 임베딩에 사용하여 역컴파일된 함수, 주석 및 심볼에 대한 의미론적 검색을 가능하게 합니다. 로컬 호스트를 위한 stdio 및 공유된 장기 실행 프로젝트를 위한 streamable-http를 포함한 여러 전송 레이어를 지원합니다.

대상 사용자

  • 보안 연구원: AI 에이전트를 사용하여 바이너리를 분류하거나 반복적인 역공학 작업을 자동화하려는 분.
  • 소프트웨어 엔지니어: 바이너리 분석을 CI/CD 파이프라인에 통합하려는 분.
  • AI 에이전트 개발자: 컴파일된 바이너리에 대한 깊은 구조적 지식이 필요한 도구를 구축하는 분.

주요 특징

  • 의미론적 코드 검색: 벡터 임베딩을 사용하여 의사 C 코드를 퍼지 검색(fuzzy lookup)합니다.
  • 에이전트 최적화: 토큰 사용량을 최소화하기 위해 좁은 범위의 도구 설명과 집중된 데이터 반환 기능을 제공합니다.
  • 이중 모드 운영: 완전한 헤드리스 자동화와 라이브 GUI 동기화를 모두 지원합니다.
  • 배치 작업: LLM 왕복 횟수를 줄이기 위해 단일 호출로 여러 함수를 역컴파일하거나 교차 참조를 나열할 수 있습니다.
  • 유연한 전송: 다양한 클라이언트 요구 사항에 맞춰 stdio, streamable-http, SSE를 지원합니다.

관련

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