symgraph/GhidrAssist
An LLM extension for Ghidra to enable AI assistance in RE.
해결하는 문제
바이너리 리버스 엔지니어링은 복잡한 어셈블리와 디컴파일된 코드를 수동으로 추적해야 하는 노동 집약적인 과정입니다. GhidrAssist는 대규모 언어 모델(LLMs)을 Ghidra에 직접 통합하여 코드 설명, 취약점 탐지, 바이너리 구조 분석을 자동화함으로써 이러한 작업 부하를 줄여줍니다.
작동 방식
이 플러그인은 OpenAI 호환 API(로컬 또는 클라우드)에 연결되는 Ghidra 플러그인으로 작동합니다. 다음과 같은 고급 AI 기술을 사용합니다:
- Graph-RAG: SQLite에 저장된 계층적 의미론적 지식 그래프 (Statement $\rightarrow$ Block $\rightarrow$ Function $\rightarrow$ Module $\rightarrow$ Binary)를 구축하여 LLM 없이도 빠른 검색과 구조적 탐색을 가능하게 합니다.
- ReAct Agentic Mode: 자율 에이전트가 "생각-행동-관찰"(Think-Act-Observe) 루프를 사용하여 조사 단계를 제안하고, 도구를 실행하며, 결과를 종합합니다.
- MCP Integration: Model Context Protocol을 사용하여 LLM이 탐색 및 분석을 위해 특정 Ghidra 도구를 호출할 수 있도록 합니다.
- Security Extraction: 네트워크, 파일 I/O, 암호화 API를 정적으로 스캔하여 함수에 위험 수준과 활동 프로필을 할당합니다.
대상 사용자
Ghidra를 사용하며 AI 기반 자동화 및 의미론적 검색을 통해 분석 속도를 높이고자 하는 보안 연구원, 악성코드 분석가, 리버스 엔지니어.
주요 특징
- 대화형 AI 지원: 역어셈블 및 의사 C 코드에 대한 설명을 제공하며, 다중 턴 채팅 인터페이스를 지원합니다.
- 자율 조사: 에이전트 모드를 통해 바이너리 탐색, 변수 이름 변경, 데이터 흐름 추적을 독립적으로 수행할 수 있습니다.
- 의미론적 지식 그래프: Leiden 알고리즘을 사용한 커뮤니티 탐지를 통해 관련 함수를 논리적 모듈로 자동 그룹화합니다.
- 사용자 지정 컨텍스트: Lucene 기반 검색을 통한 RAG를 지원하여 사용자 지정 문서나 익스플로잇 노트를 쿼리에 주입할 수 있습니다.
- 추론 제어: 확장된 사고를 지원하는 모델의 경우 사용자가 "노력 수준"(Low, Medium, High)을 조정할 수 있습니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트