clearbluejar/pyghidra-mcp
Python Command-Line Ghidra MCP
해결하는 문제
pyghidra-mcp는 Ghidra 소프트웨어 리버스 엔지니어링(SRE) 제품군과 모델 컨텍스트 프로토콜(MCP) 사이의 가교 역할을 하여, LLM 기반 에이전트와 AI 도구가 Ghidra의 분석 기능과 프로그래밍 방식으로 상호 작용할 수 있게 합니다. AI 에이전트가 디컴파일된 코드를 쿼리하고, 심볼을 검색하며, 리버스 엔지니어링 워크플로우를 자동화할 수 있도록 함으로써 수동으로 수행하던 심층 바이너리 분석 문제를 해결합니다.
작동 방식
이 프로젝트는 pyghidra와 jpype를 사용하여 Python을 Ghidra의 Java 기반 ProgramAPI 및 FlatProgramAPI에 연결하고, 이러한 기능을 MCP 도구로 노출합니다. 서버는 두 가지 주요 모드로 실행될 수 있습니다.
- Headless 모드: 자동화 및 CI/CD 파이프라인을 위한 CLI 기반 서버.
- GUI 모드: Ghidra GUI(CodeBrowser)를 실행하고 실시간 프로그램 상태를 공유하여, AI 에이전트가 GUI를 제어하거나 사용자가 AI에 의한 변경 사항을 실시간으로 확인할 수 있도록 지원.
또한 ChromaDB를 통한 벡터 임베딩을 사용하여 의미론적 코드 검색을 구현함으로써 디컴파일된 함수와 심볼에 대한 퍼지 검색을 지원합니다.
대상 사용자
- 리버스 엔지니어: LLM을 사용하여 반복적인 분석 작업을 자동화하려는 분들.
- 보안 연구원: 대규모 바이너리 트리아지 및 악성 코드 분석을 수행하는 전문가.
- AI 에이전트 개발자: 소프트웨어 보안 및 취약점 연구를 위한 자율 에이전트를 구축하는 개발자.
주요 특징
- 이중 작동 모드: Headless 자동화와 실시간 GUI 통합을 모두 지원.
- 의미론적 검색: ChromaDB를 사용한 의사 C 코드 및 심볼의 벡터 기반 퍼지 검색.
- 에이전트 최적화: 토큰 사용량을 최소화하기 위한 간결한 도구 설명과 집중된 데이터 반환.
- 유연한 전송:
streamable-http(권장),stdio, SSE를 지원하여 다양한 MCP 호스트 통합 가능. - 프로젝트 전체 분석: 단일 Ghidra 프로젝트 내에서 여러 바이너리를 동시에 리버스 엔지니어링 가능.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트