Ghidra Download비공식 다운로드 및 설치 가이드
한국어
확장 기능 이해하기

Ghidra 플러그인과 확장 기능: 설치, 활성화, 문제 해결 방법

Ghidra 플러그인을 안전하게 사용하려면 모든 확장 기능을 실행 가능한 소프트웨어로 취급해야 합니다. 저장소와 릴리스를 확인하고, 사용 중인 Ghidra 버전과의 호환성을 점검한 뒤 Ghidra의 확장 기능 설치 흐름으로 설치하고, 별도의 테스트 프로젝트에서 동작을 확인하세요. 이 가이드는 현재 Ghidra 12.1.3과 JDK 21을 기준으로 하며 스크립트, 확장 기능, 개발 도구를 구분합니다.

Ghidra 공식 문서 열기
주요 의도플러그인 찾기 및 설치
현재 기준Ghidra 12.1.3 + JDK 21
권장 방식확인, 설치, 테스트
위험 경계서드파티 코드
먼저 확인

플러그인, 확장 기능, 스크립트 중 무엇인가요? 알맞은 흐름 선택하기

플러그인, 확장 기능, 스크립트는 같은 뜻처럼 사용되지만 항상 같은 설치 방법을 요구하는 것은 아닙니다. 스크립트는 보통 Script Manager에서 실행하는 Java 또는 Python 파일입니다. 확장 기능은 Ghidra 설치에 도구, 분석기, UI 또는 다른 기능을 추가할 수 있는 패키지 모듈입니다. GhidraDev는 확장 기능을 만들고 테스트하기 위한 개발 도구이며 일반적인 플러그인 마켓이 아닙니다.

함수 이름 변경, 보고서 내보내기, 프로그램 검색처럼 한 번 수행할 작업이 목적이라면 먼저 Ghidra Script Manager 가이드를 확인하세요. 다운로드한 파일이 릴리스 노트나 호환성 설명을 포함한 패키지형 추가 기능이라면 아래 확장 기능 설치 흐름을 사용합니다. 애플리케이션 내부 런타임이 아닌 네이티브 CPython으로 Python을 실행해야 한다면 PyGhidra 가이드를 참고하세요.

플러그인이라고 해서 자동으로 신뢰할 수 있는 것은 아닙니다

Ghidra는 애플리케이션이 가진 것과 같은 로컬 접근 권한 범위에서 서드파티 코드를 불러올 수 있습니다. 출처, 릴리스, 동작을 이해하기 전에는 확인되지 않은 확장 기능을 민감한 프로젝트, 인증 정보, 운영 장비에서 멀리 두세요.

가지고 있는 것일반적인 작업다음 단계
Java 또는 Python 스크립트반복 가능한 분석 작업Script Manager에서 먼저 열어 확인하기
패키지형 확장 기능새 도구, 분석기 또는 UI 모듈릴리스를 확인한 뒤 File > Install Extensions... 사용하기
GhidraDev 프로젝트확장 기능 개발 또는 재빌드공식 개발 흐름과 해당 소스 태그 사용하기
소스 아카이브프로젝트 소스 읽기 또는 빌드바로 실행할 수 있는 플러그인 패키지로 취급하지 않기
설치 전

플러그인의 출처와 릴리스 확인하기

재포장된 다운로드 페이지가 아니라 확장 기능 자체의 프로젝트 저장소에서 확인을 시작하세요. 소유자, 릴리스 태그, README, 라이선스, 지원되는 Ghidra 버전, Java 요구 사항, 운영체제 관련 안내, 이슈 기록을 확인합니다. 저장소에는 소스 코드가 있고 Releases 페이지에는 패키지된 아티팩트가 있을 수 있으며, 둘은 서로 다른 다운로드입니다.

이 사이트가 현재 확인한 기준은 2026년 8월 18일 공개된 Ghidra 12.1.3과 64비트 JDK 21 환경입니다. 이 버전은 테스트 기준일 뿐 모든 서드파티 확장 기능이 이미 지원한다는 의미는 아닙니다. 확장 기능이 오래된 Ghidra API를 대상으로 한다면 현재 설치를 억지로 맞추지 말고 이전 Ghidra 폴더를 별도로 유지해 그 환경에서 테스트하세요. 버전 기록과 업데이트 주의 사항은 Ghidra 릴리스 가이드에서 확인할 수 있습니다.

확장 기능을 테스트하기 전에 백업해야 할 별도 프로젝트 데이터를 보여 주는 공식 Ghidra 프로젝트 창
프로젝트 데이터를 애플리케이션 폴더와 분리하고 새 확장 기능을 테스트하기 전에 복사본을 만드세요. 공식 Ghidra 프로젝트 창 이미지입니다.
설치

Ghidra 확장 기능을 단계별로 설치하기

첫 테스트에는 깨끗하고 쓰기 가능한 Ghidra 설치를 사용하세요. 확장 기능을 임의의 폴더에 압축 해제한 뒤 Ghidra가 자동으로 찾을 것이라고 가정하지 마세요. 패키지 README에 사전 조건이나 특정 버전 단계가 있으면 따르고, 해당 패키지가 지원하는 경우 Ghidra의 확장 기능 설치 명령을 사용합니다.

  1. 1

    테스트 프로젝트 백업하기

    무언가를 설치하기 전에 Ghidra를 닫고 프로젝트 데이터를 복사하세요. 첫 실행에는 폐기 가능한 샘플이나 분석 권한이 있는 교육용 바이너리를 사용합니다.

    Project.gpr + Project.rep/
  2. 2

    패키지 검사하기

    저장소, 릴리스 태그, 공개된 경우 체크섬, 지원되는 Ghidra 버전, Java 요구 사항, 그리고 파일이 소스 코드 ZIP이 아닌 패키지형 확장 기능인지 확인하세요.

    README + Releases + 호환성 안내
  3. 3

    확장 기능 설치 도구 열기

    검증된 Ghidra 빌드를 시작하고 File > Install Extensions...를 선택한 뒤 문서에 설명된 형식에 맞는 패키지를 지정하세요. 호환되지 않는 아카이브를 지원되는 것처럼 보이게 하려고 파일 이름을 바꾸지 마세요.

    File > Install Extensions...
  4. 4

    재시작하고 확인하기

    요청되면 Ghidra를 재시작하세요. 폐기 가능한 프로젝트에서 새 도구, 분석기, 메뉴 또는 provider를 확인하고 예상한 항목이 없으면 애플리케이션 로그를 확인합니다.

    재시작 > 테스트 프로젝트 열기
  • 호환성을 비교할 때 기존 애플리케이션 폴더에 설치하지 마세요.
  • Ghidra 플러그인을 설치한다고 주장한다는 이유만으로 서드파티 설치 프로그램을 실행하지 마세요.
  • 테스트를 재현하거나 제거할 수 있도록 원본 아카이브와 릴리스 URL을 보관하세요.
테스트

확장 기능을 활성화하고 작은 작업 하나 테스트하기

파일 복사가 성공했다고 해서 확장 기능을 사용할 수 있다는 뜻은 아닙니다. 추가된 도구나 분석기를 열고 의미 있는 가장 작은 작업을 실행한 뒤 Listing, CodeBrowser, Decompiler 같은 Ghidra 기본 화면과 결과를 비교하세요. Ghidra 버전, JDK 빌드, 확장 기능 릴리스, 입력 해시, 결과에 영향을 주는 옵션을 기록합니다.

스크립트 실행과 확장 기능 테스트를 분리하세요. Ghidra 검색 가이드Decompiler 가이드는 하나의 자동화 출력만 믿지 않고 기본 화면으로 결과를 검증하는 방법을 보여 줍니다. 검사 권한이 있는 파일만 분석하세요.

스크립트와 패키지형 확장 기능을 구분하기 위한 Ghidra Script Manager 흐름
Script Manager는 애플리케이션 내부 스크립트용이며, 패키지형 확장 기능은 별도의 설치 및 호환성 흐름을 따릅니다. 공식 Ghidra 흐름 이미지입니다.
호환성

Ghidra 업데이트 후 플러그인이 작동하지 않는 이유

컴파일된 확장 기능은 Ghidra API, 클래스 이름, 도구 서비스, 네이티브 라이브러리 또는 특정 Java 동작에 의존할 수 있습니다. 새 Ghidra 릴리스에서 확장 기능의 겉보기 기능이 단순해도 이러한 경계 중 하나가 바뀔 수 있습니다. 업데이트 전에 확장 기능 릴리스 노트를 읽고, 프로젝트가 특정 버전에 의존한다면 별도의 설치를 유지하세요.

아래 그림은 편집용 개념 일러스트이며 Ghidra 스크린샷이 아닙니다. 중요한 순서는 주변 설명에 있습니다. 먼저 출처를 확인하고, 다음에 설치한 뒤, 마지막으로 호환성을 테스트합니다.

플러그인 출처 확인, 확장 기능 설치, 호환성 점검 과정을 보여 주는 편집용 일러스트
편집용 개념 일러스트: 출처를 확인하고 Ghidra에서 설치한 뒤 현재 환경에서 확장 기능을 테스트합니다. 공식 Ghidra 화면이 아닙니다.
문제 해결

Ghidra 플러그인과 확장 기능의 일반적인 문제 해결하기

확장 기능이 실패하면 오류 문구를 보존하고 가장 작은 변경만 되돌리세요. 메시지를 없애기 위해 프로젝트 데이터를 삭제하거나 현재 Ghidra 설치를 알 수 없는 빌드로 교체하지 마세요. 설치 가이드는 JDK와 실행 문제를 다루며, 다음 표는 확장 기능에 특화된 실패에 사용합니다.

  • 릴리스 페이지에서 Ghidra 버전을 기록하고 java -version으로 Java 출력을 저장하세요.
  • 실패 원인을 분명히 하려면 한 번에 하나의 확장 기능만 테스트하세요.
  • 확인할 수 없는 패키지는 제거하거나 격리하고 민감한 워크스테이션에서 계속 활성화하지 마세요.
증상가능한 원인안전한 대응
패키지가 목록에 표시되지 않음잘못된 아카이브 형식, 중첩 폴더 또는 지원되지 않는 릴리스README를 다시 읽고 공개된 확장 기능 아티팩트를 선택
도구가 설치되었지만 보이지 않음재시작, 도구 설정 또는 provider 표시 문제Ghidra를 재시작하고 도구 설정을 확인한 뒤 새 프로젝트에서 테스트
NoClassDefFoundError 또는 API 오류다른 Ghidra API나 Java 환경으로 컴파일됨호환되는 릴리스를 사용하거나 해당 소스 태그에서 다시 빌드
Ghidra가 불안정해짐확장 기능 결함, 네이티브 도우미 또는 모듈 충돌Ghidra를 닫고 깨끗한 설치를 복원한 뒤 정확한 버전 조합을 보고
이전 릴리스에서만 작동함확장 기능이 현재 API를 아직 지원하지 않음이전 버전을 격리하고 고정된 도구 체인을 기록
개발자 경계

GhidraDev는 확장 기능을 빌드하는 도구이지 플러그인 스토어가 아닙니다

GhidraDev는 Eclipse 기반 환경에서 Ghidra 모듈을 만들거나 다시 빌드하는 공식 개발 경로입니다. 서드파티 확장 기능에 호환되는 패키지가 없거나, 소스 코드 변경을 검토해야 하거나, 팀에서 기록된 Ghidra 태그를 기준으로 빌드해야 할 때 필요합니다. 공개 패키지를 설치하는 것보다 작업량이 많으므로 초보자용 플러그인 관리자로 설명해서는 안 됩니다.

자동화만 필요하다면 개발 환경을 추가하기 전에 PyGhidra 흐름초보자 튜토리얼을 비교하세요. 재현 가능한 확장 기능 빌드는 소스 커밋, Ghidra 태그, JDK, Gradle 또는 Eclipse 설정, 운영체제, 결과 아티팩트 해시를 기록해야 합니다.

경계를 분명하게 유지하기

서드파티 플러그인 목록은 프로젝트를 찾는 데 도움을 줄 수 있지만 설치와 호환성의 근거는 프로젝트 저장소와 릴리스 노트입니다. 이 페이지는 특정 확장 기능을 추천하지 않습니다.

FAQ

Ghidra 플러그인과 확장 기능 FAQ

Ghidra 플러그인은 스크립트와 같은 것인가요?

아닙니다. Java 또는 Python 스크립트는 보통 특정 작업을 위해 Script Manager에서 실행합니다. 패키지형 확장 기능은 도구, 분석기 또는 UI를 추가할 수 있으며 별도의 설치와 호환성 규칙을 따릅니다.

Ghidra 확장 기능은 어떻게 설치하나요?

먼저 저장소와 릴리스를 확인하고 테스트 프로젝트를 백업한 다음, 검증된 Ghidra 빌드를 시작해 패키지 문서가 지원하는 경우 File > Install Extensions...를 사용하세요. 재시작한 뒤 권한이 있는 샘플에서 새 기능을 테스트합니다.

GitHub의 ZIP 파일은 무엇이든 Ghidra 플러그인으로 설치할 수 있나요?

아닙니다. GitHub 저장소에는 소스 아카이브, 릴리스 아티팩트, 예제, 관련 없는 파일이 함께 있을 수 있습니다. 프로젝트가 설명한 패키지를 사용하고 Ghidra 및 Java 요구 사항을 확인하며 호환되지 않는 아카이브의 이름을 바꾸지 마세요.

Ghidra를 업데이트한 뒤 확장 기능이 작동하지 않는 이유는 무엇인가요?

확장 기능이 변경된 Ghidra API, 서비스, 네이티브 도우미 또는 Java 환경에 의존할 수 있습니다. 호환되는 릴리스를 찾거나 새 소스 태그에 맞춰 다시 빌드하고, 테스트가 끝날 때까지 이전 설치를 분리해 두세요.

이 페이지는 특정 서드파티 플러그인을 추천하나요?

아닙니다. 디렉터리 목록을 추천으로 취급하지 않고 플러그인을 평가하고 테스트하는 방법을 설명합니다. 선택한 확장 기능은 프로젝트 저장소, 릴리스 노트, 라이선스, 호환성 근거를 확인하세요.

검증된 Ghidra 설치에서 시작하기

현재 공식 Ghidra 12.1.3 ZIP을 다운로드하고 테스트 프로젝트를 분리해 보관한 뒤 검증된 확장 기능을 한 번에 하나씩 추가하세요.