Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
OGhidra — OGhidra는 Ollama를 통해 대규모 언어 모델(LLMs)과 Ghidra 리버스 엔지니어링 플랫폼을 연결하여, 자연어를 통한 AI 기반 바이너리 분석을 가능하게 합니다. 대화형 질의를 사용하여 Ghidra와 상호작용하고 복잡한 리버스 엔지니어링 워크플로우를 자동화하세요. | Kitploit
도구/GitHubGitHub/llnl/oghidra
Vulnerability AnalysisReverse EngineeringDebuggersMalware AnalysisBinary AnalysisMachine LearningLearning & EducationAI-Assisted Reversing
GitHubllnl/oghidra

OGhidra

OGhidra는 Ollama를 통해 대규모 언어 모델(LLMs)과 Ghidra 리버스 엔지니어링 플랫폼을 연결하여, 자연어를 통한 AI 기반 바이너리 분석을 가능하게 합니다. 대화형 질의를 사용하여 Ghidra와 상호작용하고 복잡한 리버스 엔지니어링 워크플로우를 자동화하세요.

저장소 보기
397456일 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

OGhidra 3 - Ghidra를 활용한 AI 기반 리버스 엔지니어링

Claude에서 영감을 받은 Orchestrator를 사용하는 버전은 https://github.com/llnl/OGhidra/tree/orchestrator 를 참조하세요.

Python Version License PRs Welcome

OGhidra는 대규모 언어 모델(LLM)과 Ghidra 리버스 엔지니어링 플랫폼을 연결하여 자연어를 통한 AI 기반 바이너리 분석을 가능하게 합니다. 대화형으로 바이너리를 분석하고, 복잡한 워크플로를 자동화하며, 로컬 AI 모델로 완전한 프라이버시를 유지하세요.

YouTube 설정 튜토리얼

OGhidra Introduction


OGhidra란 무엇인가?

OGhidra는 Ghidra에 AI 기능을 추가하여 다음을 가능하게 합니다:

  • 자연어 분석 - 함수, 문자열, 가져오기에 대해 평범한 영어로 질문하기
  • 자동화된 워크플로 - 함수 이름 바꾸기, 패턴 탐지, 포괄적인 보고서 생성
  • 로컬 AI 모델 - 하드웨어에서 실행되는 모델로 완전한 프라이버시 (Ollama)
  • 클라우드 AI 지원 - 외부 API 연결 (OpenAI, Google Gemini, Anthropic Claude)
  • 악성코드 탐지 - 12개 이상의 회피 및 인젝션 기술에 대한 자동 패턴 매칭
  • 스마트 열거 - 바이너리 분석에서 질의 가능한 지식 그래프 구축
  • 다중 인스턴스 분석 - 여러 Ghidra 인스턴스를 실행하여 병렬 분석

작동 방식

root@kitploit:~
graph TD
    A[User Query] --> B[Planning Phase]
    B --> C{Execution Phase}
    C -- Tool Calls --> D[Ghidra/LLM]
    D --> C
    C --> E[Review Phase]
    E -- Agentic Loop --> B
    E --> F[Final Response]

    style E fill:#f9f,stroke:#333,stroke-width:2px
    style B fill:#bbf,stroke:#333,stroke-width:2px

에이전틱 루프: OGhidra는 적응형 계획 시스템을 사용합니다. 각 실행 주기 후에 결과를 검토하고 AI는 최종 응답을 제공하기 전에 더 많은 정보를 수집하거나 분석을 개선할 수 있습니다.


빠른 시작

사전 요구사항

  1. Python 3.12+ - 버전 확인: python --version
  2. Ghidra 12.0.3 (권장) - Ghidra Releases에서 다운로드
    • 플러그인 빌드/설치 경로는 Ghidra 12.0.3용으로 문서화됨
    • 테스트 완료: Ghidra 11.0.3, 11.3.2, 12.0.2, 12.0.3
  3. Java 21 - Ghidra 12.0.3 확장 프로그램 빌드에 필요: java -version
  4. Ollama (선택 사항, 로컬 모델용) - ollama.com에서 설치

설치

root@kitploit:~
# Clone repository
git clone https://github.com/LLNL/OGhidra.git
cd OGhidra

# Install dependencies (choose one)
uv sync                          # Using UV (recommended)
pip install -r requirements.txt  # Using pip

# Configure environment
cp .env.example .env
# Edit .env with your settings

Ghidra 플러그인 설정

아래 OGhidraMCP 플러그인 빌드 단계는 Ghidra 12.0.3(권장)을 대상으로 합니다. YouTube 동영상 튜토리얼도 있습니다: https://www.youtube.com/watch?v=hBD92FUgR0Y

GhidraMCP 확장 프로그램 빌드

개발자로서 Ghidra에 설치하기 전에 GhidraMCP 확장 프로그램을 빌드해야 합니다:

  1. 사전 요구사항:

    • Ghidra 12.0.3 설치
    • Java 21
  2. 옵션 1: 자동 빌드 스크립트 사용:

    • Windows:

      root@kitploit:~
      # Set the path to your Ghidra installation (will attempt to find last run copy of Ghidra if not set)
      set GHIDRA_INSTALL_DIR=C:\path\to\ghidra_12.0.3_PUBLIC
      
      # Run the build script
      build_ghidra_plugin.bat
      
    • Unix/Linux/Mac:

      root@kitploit:~
      # Set the path to your Ghidra installation (will attempt to find the last run copy of Ghidra if not set)
      export GHIDRA_INSTALL_DIR=/path/to/ghidra_12.0.3_PUBLIC
      
      # Run the build script (make it executable first if needed)
      chmod +x build_ghidra_plugin.sh
      ./build_ghidra_plugin.sh
      
  3. 옵션 2: 수동 빌드 프로세스:

    • Ghidra 설치 경로로 OGhidraMCP/gradle.properties를 생성/업데이트하세요:

      root@kitploit:~
      GHIDRA_INSTALL_DIR=/absolute/path/to/ghidra_12.0.3_PUBLIC
      
    • On Unix/Linux/macOS:

      root@kitploit:~
      cd OGhidraMCP
      $GHIDRA_INSTALL_DIR/support/gradle/gradlew buildExtension --info
      
    • On Windows:

      root@kitploit:~
      cd OGhidraMCP
      "%GHIDRA_INSTALL_DIR%\support\gradle\gradlew.bat" buildExtension --info
      

GhidraMCP 확장 프로그램 설치

확장 프로그램을 성공적으로 빌드한 후:

  1. Ghidra에 설치:

    • Ghidra를 열고 File -> Install Extensions
    • Add Extension(녹색 더하기 아이콘) 클릭
    • OGhidraMCP/dist/ 디렉토리로 이동
    • 새로 빌드된 확장 프로그램 zip 파일 선택 (예: ghidra_12.0.3_PUBLIC_YYYYMMDD_OGhidraMCP.zip)
    • Ghidra 재시작
  2. 플러그인 활성화:

    • Ghidra 프로젝트 열기
    • File → Configure → Enable Developer
    • OGhidraMCP 플러그인 활성화
    • 서버가 http://localhost:8080/methods에서 시작됩니다.

    코드 브라우저를 열어 두어야 합니다

AI 모델 다운로드

root@kitploit:~
# For Ollama (local models)
ollama pull gemma3:27b           		# Good balance (20GB RAM)
ollama pull nomic-embed-text     		# Embedding model for RAG

# Alternative models
ollama pull gpt-oss:120b         		# High quality (80GB RAM)
ollama pull devstral-2:123b 			# High quality (80GB RAM)
ollama pull devstral-2:123b-cloud       # Cloud Model

OGhidra 실행

root@kitploit:~
# GUI Mode (recommended)
uv run main.py --ui

# Interactive CLI
uv run main.py --interactive

# In interactive CLI, test connection
health

GUI 모드로 실행한 경우 다음을 사용하세요:

root@kitploit:~
curl http://localhost:8080/methods

설정

.env 파일을 편집하여 AI 제공자를 설정하세요:

옵션 1: 로컬 모델 (Ollama)

root@kitploit:~
LLM_PROVIDER=ollama
OLLAMA_BASE_URL=http://localhost:11434/
OLLAMA_MODEL=gemma3:27b
OLLAMA_EMBEDDING_MODEL=nomic-embed-text

옵션 2: 외부 API

root@kitploit:~
LLM_PROVIDER=external
EXTERNAL_PROVIDER=google
EXTERNAL_API_KEY=your-api-key-here
EXTERNAL_MODEL=gemini-3.1-flash-lite-preview
EXTERNAL_EMBEDDING_MODEL=gemini-embedding-001

옵션 3: 사용자 지정 OpenAI 호환 API

root@kitploit:~
LLM_PROVIDER=custom_api
CUSTOM_API_URL=https://api.example.com/v1/chat/completions
CUSTOM_API_KEY=your-api-key-here
CUSTOM_API_MODEL=your-model-name
CUSTOM_API_EMBEDDING_MODEL=your-embedding-model

컨텍스트 관리 설정

모델의 컨텍스트 윈도우에 맞게 조정하세요:

root@kitploit:~
# Context budget in tokens (adjust to your model's limit)
CONTEXT_BUDGET=100000              # 100K tokens for mid-size models
                                   # 200K+ for frontier models

# Execution settings
MAX_EXECUTION_STEPS=5              # Steps per planning cycle
MAX_AGENTIC_CYCLES=3               # How many plan-execute-review loops
AGENTIC_LOOP_ENABLED=true          # Enable adaptive replanning

주요 기능

1. 스마트 도구 버튼 (GUI)

일반적인 리버스 엔지니어링 작업에 대한 원클릭 액세스:

2. 작업 모드

특화된 분석 목표 설정:

root@kitploit:~
# In GUI: Use "Task Mode" dropdown
# In CLI: set task_mode <mode>

task_mode malware      # Malware analysis with pattern detection
task_mode vuln         # Vulnerability research focus
task_mode general      # General reverse engineering

3. 악성코드 패턴 탐지

12개 이상의 악성코드 패턴 자동 탐지:

  • 회피: PEB Walking, 동적 API 해석, 안티 디버그, 안티 VM
  • 인젝션: 프로세스 인젝션 (로컬/원격)
  • 지속성: 레지스트리, 파일 시스템 후크
  • 난독화: 문자열 인코딩, API 해싱
  • 권한 상승: 토큰 조작, UAC 우회

패턴은 MITRE ATT&CK 매핑과 함께 AI 컨텍스트에서 자동 알림을 트리거합니다.

4. 스마트 열거

바이너리 분석으로 풍부하고 질의 가능한 지식 구축:

root@kitploit:~
# Enumerate all functions with AI summaries
# Choose from:
- Rename Only: Only process generic function names
- Smart Enumeration: Focus on security-relevant functions
- Full Enumeration: Analyze every function in the binary

기능:

  • 구조화된 메타데이터 추출 (LOC, 복잡성, 연산)
  • 의미 검색 최적화
  • 의도 기반 컨텍스트 어셈블리
  • 정밀 검색을 위한 다중 벡터 지원

5. 세션 관리

분석 세션 저장 및 복원:

root@kitploit:~
# Save progress
File → Save Session

# Load previous work
File → Load Session

# Auto-save after bulk operations
# Sessions include:
- Analyzed functions with summaries
- RAG vectors for semantic search
- Performance statistics
- UI state

백엔드 설정

OGhidra는 두 가지 백엔드 유형을 지원합니다:

  • MCP — GhidraMCP 서버와 통합되며 분석 중에 Ghidra 클라이언트가 실행 중이어야 합니다.
  • PyGhidra — Ghidra 클라이언트 없이 헤드리스 분석을 지원하며 MCP에 필요한 서버 구성 요소를 제거합니다.

백엔드 선택

다음 명령줄 옵션을 사용하여 백엔드를 선택하세요:

root@kitploit:~
--ghidra-backend={http,pyghidra}
백엔드 옵션설명
httpGhidraMCP 백엔드 사용
pyghidraPyGhidra 백엔드 사용

PyGhidra 설정

기존 Ghidra 프로젝트 사용

OGhidra 실행 시 Ghidra 프로젝트 파일(.gpr)을 지정하세요:

root@kitploit:~
--pyghidra-project=/path/to/project.gpr

PyGhidra는 OGhidra를 실행하려면 유효한 Ghidra 프로젝트가 필요합니다.


프로그램 선택

Ghidra 프로젝트 내에서 분석할 바이너리를 지정하세요:

root@kitploit:~
--pyghidra-program=<program_name>

Ghidra 프로젝트에서 프로그램을 선택하는 예시 호출:

root@kitploit:~
uv run main.py --ui --ghidra-backend=pyghidra --pyghidra-project=/path/to/project.gpr --pyghidra-program=<program_name>

요구사항:

  • 프로그램 이름은 Ghidra 프로젝트 GUI에 표시된 이름과 정확히 일치해야 합니다.
  • 기존 프로젝트를 사용할 때 이 옵션이 필요합니다.
  • 프로그램을 지정하지 않으면 OGhidra가 실행되지 않습니다.

바이너리 직접 실행

바이너리 경로를 직접 제공할 수도 있습니다:

root@kitploit:~
--pyghidra-binary=/path/to/binary

이 옵션을 사용하면 PyGhidra가 자동으로 다음을 수행합니다:

  1. 새 Ghidra 프로젝트(.gpr) 생성
  2. 바이너리 가져오기
  3. 분석을 위해 OGhidra에서 바이너리 실행

바이너리를 직접 실행하는 예시 호출:

uv run main.py --ui --ghidra-backend=pyghidra --pyghidra-binary=/path/to/binary


일반적인 워크플로

의심스러운 바이너리 분석

  1. Ghidra에 바이너리 로드 및 CodeBrowser에서 열기
  2. OGhidraMCP 플러그인 활성화 (File → Configure)
  3. OGhidra 실행: uv run main.py --ui
  4. 작업 모드 설정: 드롭다운에서 "malware" 선택
  5. 스마트 열거 실행: "Rename All Functions" → "Smart Enumeration" 클릭
  6. 질문하기: "고위험 함수는 무엇인가요?" 또는 "네트워크 통신을 보여주세요"

보안 보고서 생성

root@kitploit:~
# In GUI: Click "Generate Report" button
# Report includes:
- Executive Summary
- Function Inventory (renamed functions with behavior)
- Security Analysis (high-risk functions, patterns)
- Import Analysis
- String Analysis
- Recommendations

특정 함수 조사

  1. Ghidra에서 함수로 이동
  2. "Analyze Current Function" 클릭
  3. 후속 질문하기:
    • "이 함수는 무엇을 하나요?"
    • "버퍼 오버플로우에 취약한가요?"
    • "이 함수를 호출하는 다른 함수는 무엇인가요?"

고급 기능

RAG (검색 증강 생성)

OGhidra는 분석된 함수에 대한 의미 검색을 위해 벡터 임베딩을 사용합니다:

root@kitploit:~
# Enable in .env
RESULT_CACHE_ENABLED=true
TIERED_CONTEXT_ENABLED=true

이점:

  • 세션 간 이전 분석 기억
  • 의미적으로 유사한 함수 찾기
  • 중복 LLM 호출 줄이기

컨텍스트 최적화

계층적 컨텍스트 압축이 관련 정보를 유지합니다:

root@kitploit:~
CURRENT_LOOP_MAX_CHARS=2000   # Recent: full detail
PREV_LOOP_MAX_CHARS=400       # Previous: summaries
OLDER_LOOP_MAX_CHARS=100      # Older: references only

LLM 로깅

디버깅을 위한 모든 AI 상호 작용 추적:

root@kitploit:~
LLM_LOGGING_ENABLED=true
LLM_LOG_FILE=logs/llm_interactions.log
LLM_LOG_FORMAT=json

문제 해결

Ghidra 연결 문제

root@kitploit:~
# Verify plugin is loaded
# Open up codebrowser!

# Check server is running
curl http://localhost:8080/methods

Ollama 연결 문제

root@kitploit:~
# Verify Ollama is running
ollama list

# Check connectivity
curl http://localhost:11434/api/tags

# Restart Ollama service
ollama serve

빈 응답 / 컨텍스트 오버플로

root@kitploit:~
# Reduce context budget
CONTEXT_BUDGET=50000

# Enable compaction
COMPACTION_ENABLED=true
COMPACTION_THRESHOLD=0.75

느린 성능

  1. 더 작은 모델 사용: gemma3:9b로 전환
  2. 병렬 작업자 줄이기: 대량 작업에서 max_workers=2 설정
  3. 벡터 임베딩 비활성화: RESULT_CACHE_ENABLED=false
  4. 요청 지연 증가: CUSTOM_API_REQUEST_DELAY=2.0

아키텍처 개요

root@kitploit:~
┌─────────────────────────────────────────────────────────────┐
│                        OGhidra UI                           │
│                  (GUI / Interactive CLI)                    │
└────────────────────────┬────────────────────────────────────┘
                         │
                         ▼
┌─────────────────────────────────────────────────────────────┐
│                   Bridge (src/bridge.py)                    │
│  ┌────────────────────────────────────────────────────────┐ │
│  │ • Agentic Loop: Plan → Execute → Review → Replan       │ │
│  │ • Tool Router: Ghidra client, LLM client, CAG manager  │ │
│  │ • Context Manager: Budget allocation, compression      │ │
│  └────────────────────────────────────────────────────────┘ │
└───────────┬────────────────────────┬────────────────────────┘
            │                        │
            ▼                        ▼
┌───────────────────────┐  ┌─────────────────────────┐
│   Ghidra Client       │  │   LLM Clients           │
│ • GhidraMCP Plugin    │  │ • Ollama (local)        │
│ • Binary operations   │  │ • External APIs         │
│ • Decompilation       │  │ • Custom endpoints      │
└───────────────────────┘  └─────────────────────────┘
            │                        │
            └────────────┬───────────┘
                         ▼
┌─────────────────────────────────────────────────────────────┐
│               CAG Manager (Knowledge System)                │
│  ┌────────────────────────────────────────────────────────┐ │
│  │ • Vector Store: Semantic search over functions         │ │
│  │ • Pattern Detector: 12+ malware techniques             │ │
│  │ • Metadata Extractor: Structured function analysis     │ │
│  │ • Session Store: Persistent analysis state             │ │
│  └────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘

기여하기

기여를 환영합니다! 관심 분야:

  • 탐지를 위한 새로운 악성코드 패턴
  • LLM 제공자 통합
  • UI/UX 개선
  • 성능 최적화
  • 문서 및 예제

커뮤니티 지침은 CODE_OF_CONDUCT.md를 참조하세요.


인용

연구에 OGhidra를 사용하는 경우 다음을 인용해 주세요:

root@kitploit:~
@software{oghidra2025,
  title = {OGhidra: AI-Powered Reverse Engineering with Ghidra},
  author = {Enoch Wang},
  year = {2025},
  url = {https://github.com/LLNL/OGhidra}
}

감사의 말

OGhidra는 훌륭한 오픈소스 프로젝트를 기반으로 합니다:

  • Ghidra - NSA의 리버스 엔지니어링 플랫폼
  • Ollama - 로컬 LLM 런타임
  • LaurieWired/GhidraMCP - 원본 Ghidra MCP 플러그인
  • starsong/GhydraMCP - 향상된 MCP 구현

라이선스

OGhidra는 BSD 3-Clause 라이선스의 조건과 상용 라이선스 대안에 따라 배포됩니다.

자세한 내용은 LICENSE 및 NOTICE.md를 참조하세요.

LLNL-CODE-2013290


지원

  • 이슈: GitHub Issues
  • 토론: GitHub Discussions
  • 직접 이메일 보내기: [email protected]
도구 다운로드
  • 빌드된 확장 프로그램 찾기:

    • 확장 프로그램 zip 파일은 OGhidraMCP/dist/에 생성됩니다.
    • 파일 이름은 ghidra_12.0.3_PUBLIC_YYYYMMDD_OGhidraMCP.zip과 같습니다.
  • 도구설명
    Analyze Current Function선택한 함수의 동작 심층 분석
    Rename Current FunctionAI가 분석을 기반으로 의미 있는 이름 제안
    Rename All Functions스마트/전체/이름만 변경 옵션으로 일괄 이름 바꾸기
    Analyze Imports라이브러리 및 외부 종속성 식별
    Analyze StringsURL, 자격 증명, 구성 데이터 찾기
    Generate Report포괄적인 보안 평가