Ghidra 리버스 엔지니어링
ACTION REQUIRED (읽은 후 즉시 실행)
지금: ../field-journal/precedent-reverse.md 읽기
지금: Ghidra 필요 여부 확인 (IDA 없음 / 오픈소스 선호 / 배치 헤드리스)
다음: ../tool-index.md 읽어 ghidra / ghidra-mcp 경로 확인
다음: 도구 없음 → ghidra-mcp 부트스트랩 (매니페스트 지원 시) 또는 수동으로 Ghidra 설치
실행: 샘플 가져오기 → 자동 분석 → 주요 함수 디컴파일 내보내기
적용 시나리오
- IDA 라이선스가 없을 때의 주요 리버스 엔트리 포인트
- 배치 헤드리스 분석 / CI에서 디컴파일
- Ghidra 스크립트 (Java/Python Jython/PyGhidra) 자동화
binary-diff / patch-diff-exploit의 ghidriff와 연동
IDA와의 역할 분담
| 요구 사항 | 우선 순위 |
|---|
| 기존 IDA MCP 심층 분석 | ida-reverse/ |
| 오픈소스 / 배치 / 교육 | 본 스킬 |
| CLI만 빠른 정찰 | radare2/ |
워크플로우
1. 프로젝트 및 자동 분석
□ 새 프로젝트 → 파일 가져오기 → 분석 (기본 분석기)
□ 언어/컴파일러 식별 결과 및 베이스 주소 기록
□ 진입점, 내보내기 테이블, 문자열 xref 표시
2. 주요 함수
□ 문자열 / 가져온 API로 역추적
□ 디컴파일 창으로 알고리즘 복원
□ 함수/변수 이름 변경; Plate 주석 작성
□ 동적 분석 필요 시 Frida/GDB에 인계 (reverse-engineering 동적 섹션)
3. 헤드리스 (배치)
analyzeHeadless /path/to/project Proj -import sample.bin -postScript ExportDecomp.py
4. MCP (설정된 경우)
□ ghidra MCP 포트 확인 (일반 8765, tool-index 기준)
□ MCP 도구를 사용해 디컴파일 / xrefs 가져오기, 포트 추측 금지
도구 체인
| 도구 | 용도 | 자가 설치 |
|---|
| Ghidra | 디컴파일 주요 도구 | 수동 릴리스 / 패키지 관리자 |
| ghidra-mcp | AI 브리지 | 부트스트랩 능력명 ghidra-mcp |
| ghidriff | 패치 차이 | patch-diff-exploit 참조 |
참고
references/ghidra-cheatsheet.md
../ida-reverse/ ../radare2/ ../binary-diff/
라우팅 컨텍스트
상위: MASTER R22
하위: 동적 검증 → Frida/GDB; 익스플로잇 → pwn-chain
동급: ida-reverse (상업용 심층 분석)
작업 완료 자가 점검