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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Ghidrathon — FLARE 팀이 개발한 Ghidra에 Python 3 스크립팅 기능을 추가하는 오픈소스 확장 프로그램입니다. | Kitploit
도구/GitHubGitHub/mandiant/ghidrathon
Reverse EngineeringScripting & AutomationMalware AnalysisBinary AnalysisArchived
GitHubmandiant/ghidrathon

Ghidrathon

FLARE 팀이 개발한 Ghidra에 Python 3 스크립팅 기능을 추가하는 오픈소스 확장 프로그램입니다.

저장소 보기
788652년 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Ghidrathon

GitHub Release GitHub Downloads (all assets, latest release) CI License

Ghidrathon은 Ghidra에 Python 3 스크립팅 기능을 추가하는 Ghidra 확장 프로그램입니다. 왜일까요? Ghidra는 기본적으로 Java와 Jython으로 스크립팅을 지원합니다. 불행히도 capa, Unicorn Engine, angr 등 많은 오픈소스 분석 도구가 Python 3로 작성되어 있어 Ghidra에서 이러한 도구를 사용하기 어렵고, 경우에 따라서는 불가능합니다. 더욱이 보안 커뮤니티는 IDA Pro나 Binary Ninja 같은 다른 SRE 프레임워크를 위한 훌륭한 플러그인을 여러 개 발표했지만, 이들 중 상당수가 Python 3를 사용하기 때문에 Ghidra로 포팅하기 어렵습니다. Ghidrathon을 사용하면 Ghidra에서 기존 Python 3 도구를 사용하고 새로운 도구를 개발할 수 있으며, Ghidra의 UI와 긴밀하게 통합되는 방식으로 최신 Python을 사용하여 Ghidra를 스크립팅할 수 있습니다. 또한 Jython을 통해 구현된 기존 Python 2.7 확장을 대체합니다. 여기에는 대화형 인터프리터 창, Ghidra Script Manager 통합, Ghidra headless 모드에서의 스크립트 실행이 포함됩니다.

예시

Ghidra용 Python 3 스크립트 작성 방법을 자세히 살펴보려면 여기에 있는 Ghidra Python 3 스크립트 예제를 확인하세요.

다음을 확인하세요:

  • 첫 번째 Ghidrathon 블로그 게시물의 개요

Ghidrathon 설치

요구 사항

다음 단계에 따라 Ghidra 환경에 Ghidrathon을 설치하세요:

  1. 최신 Ghidrathon 릴리스를 다운로드하고 압축을 풉니다.
  2. Ghidrathon과 함께 사용하려는 Python 인터프리터로 다음 명령을 실행합니다(requirements.txt와 ghidrathon_configure.py는 릴리스에 포함되어 있습니다):
root@kitploit:~
$ python -m pip install -r requirements.txt
$ python ghidrathon_configure.py <absolute_path_to_ghidra_install_dir>

참고: ghidrathon_configure.py는 기본적으로 <absolute_path_to_ghidra_install_dir>에 ghidrathon.save라는 파일을 쓰려고 시도합니다. ghidrathon_configure.py와 Ghidra를 실행하기 전에 GHIDRATHON_SAVE_PATH 환경 변수를 설정하여 이 파일이 기록되는 경로를 지정할 수 있습니다:

root@kitploit:~
$ export GHIDRATHON_SAVE_PATH="/path/to/custom/dir" # Linux/MacOS
$ set GHIDRATHON_SAVE_PATH="C:\path\to\custom\dir"  # Windows

참고: JAVA_HOME이라는 환경 변수를 설정하라는 메시지가 표시될 수 있습니다. 이 변수는 Ghidra 설치를 위해 구성한 JDK의 절대 경로를 가리켜야 합니다.

  1. Ghidrathon 확장 프로그램(.zip)을 Ghidra에 설치합니다:
    • Ghidra UI 사용:
      • File > Install Extensions...로 이동합니다.
      • 녹색 + 버튼을 클릭합니다.
      • Ghidrathon 확장 프로그램(.zip)으로 이동합니다.
      • Ok를 클릭합니다.
      • 선택 사항
        • Extension Version Mismatch 창이 표시되면 Install Anyway를 선택합니다.
    • 제한된 환경 사용:
      • Ghidrathon 확장 프로그램(.zip)을 <absolute_path_to_ghidra_install_dir>\Ghidra\Extensions에 압축을 풉니다.

Python 인터프리터 전환

새 Python 인터프리터로 2단계를 실행하면 Ghidrathon이 다른 Python 인터프리터를 사용하도록 전환할 수 있습니다.

Python 가상 환경 사용

가상 환경에서 2단계를 실행하면 Ghidrathon과 함께 Python 가상 환경을 사용할 수 있습니다. 다른 가상 환경으로 전환하려면 새 가상 환경에서 2단계를 실행하기만 하면 됩니다.

Ghidrathon 사용

Python 3 인터프리터 창

인터프리터 창은 Python 3 인터프리터에 대한 대화형 액세스를 제공합니다. 인터프리터 창을 열려면 "Window"를 클릭하고 "Ghidrathon"을 선택하세요.

예시

Ghidra Script Manager 통합

Ghidrathon은 Ghidra Script Manager와 직접 통합되어 Ghidra 내에서 Python 3 스크립트를 생성, 편집, 실행할 수 있게 해줍니다. 새 Python 3 스크립트를 만들려면 "Create New Script"를 클릭하고 "Python 3"를 선택하세요. Python 3 스크립트를 실행하려면 "Run Script" 또는 "Run Editors's Script"를 클릭하고 Ghidra Console 창에서 스크립트 출력을 확인하세요.

예시

Ghidra Headless 모드

Ghidrathon을 사용하면 Ghidra headless 모드에서 Python 3 스크립트를 실행할 수 있습니다. Ghidra 설치 폴더에 있는 analyzeHeadless 스크립트를 실행하고 Python 3 스크립트를 지정한 다음 콘솔 창에서 스크립트 출력을 확인하세요.

root@kitploit:~
$ analyzeHeadless C:\Users\wampus example -process example.o -postScript ghidrathon_example.py
[...]
INFO  SCRIPT: C:\Users\wampus\.ghidra\.ghidra_10.0.3_PUBLIC\Extensions\Ghidrathon-master\ghidra_scripts\ghidrathon_example.py (HeadlessAnalyzer)
Function _init @ 0x101000: 3 blocks, 8 instructions
Function FUN_00101020 @ 0x101020: 1 blocks, 2 instructions
Function __cxa_finalize @ 0x101040: 1 blocks, 2 instructions
Function printf @ 0x101050: 1 blocks, 2 instructions
Function _start @ 0x101060: 1 blocks, 13 instructions
Function deregister_tm_clones @ 0x101090: 4 blocks, 9 instructions
Function register_tm_clones @ 0x1010c0: 4 blocks, 14 instructions
Function __do_global_dtors_aux @ 0x101100: 5 blocks, 14 instructions
[...]
INFO  REPORT: Post-analysis succeeded for file: /example.o (HeadlessAnalyzer)
INFO  REPORT: Save succeeded for processed file: /example.o (HeadlessAnalyzer)

Ghidra를 headless 모드로 실행하는 방법에 대한 자세한 내용은 <absolute_path_to_ghidra_install_dir>/support/analyzeHeadlessREADME.html을 확인하세요.

타사 Python 모듈

Ghidrathon 개발의 가장 큰 동기 중 하나는 Ghidra에서 타사 Python 3 모듈을 사용할 수 있게 하는 것이었습니다. 일반적인 Python 환경에서와 마찬가지로 모듈을 설치하고 Ghidra 내부에서 사용할 수 있습니다. 이는 이전에 설치한 모듈에도 적용됩니다. 예를 들어 Unicorn을 설치하여 Ghidra 내부에서 ARM 코드를 에뮬레이션할 수 있습니다.

예시

Ghidra Python 3 스크립트 작성

Ghidrathon은 Ghidra의 Java 및 Jython 확장과 매우 유사한 스크립팅 환경을 제공합니다. 여기에는 GhidraScript 상태 인스턴스 변수(예: currentProgram)와 FlatProgramAPI 메서드(예: findBytes)를 Python builtins 범위에서 사용할 수 있게 하는 것이 포함됩니다. 즉, 코드에서 import하는 모든 Python 모듈이 이러한 변수와 메서드에 접근할 수 있습니다. Ghidrathon은 GhidraScript 상태 변수를 직접 접근하는 대신 Python 함수 호출로 노출한다는 점에서 Ghidra의 Java 및 Jython 확장과 약간 다릅니다. 예를 들어 Python 3 코드는 currentProgram() 함수 호출을 사용하여 currentProgram에 접근해야 합니다. 이 작은 변경은 실행 중에 Python 3 코드에 올바른 GhidraScript 상태 변수가 제공되도록 보장합니다. Ghidra용 Python 3 스크립트 작성에 대해 자세히 알아보려면 여기에 있는 Ghidra Python 3 스크립트 예제를 참조하세요.

어떻게 동작하나요?

Ghidrathon은 오픈소스 프로젝트 Jep을 사용하여 로컬 Python 설치를 Ghidra에 연결합니다. 기본적으로 로컬 Python 인터프리터가 Ghidra 내부에서 실행되며 모든 Python 패키지 및 표준 Ghidra 스크립팅 API에 접근할 수 있습니다. Ghidrathon은 Python 가상 환경에서도 작동하므로 Ghidra에서만 사용하려는 패키지를 만들고, 격리하고, 관리하는 데 도움이 됩니다. Ghidrathon은 로컬 Python 설치를 사용하므로 Ghidra 내부에서 실행되는 Python 버전과 환경을 제어할 수 있습니다.

Jep이 Java에 Python을 임베딩하는 방식에 대한 자세한 내용은 여기에 있는 문서를 참조하세요.

고려 사항

Ghidrathon은 JVM에 Python을 임베딩하기 위해 Java Native Interface(JNI)를 사용하는 오픈소스 라이브러리 Jep을 사용합니다. Ghidra 개발자들은 여기에서 논의된 이유로 Ghidra에서 JNI 사용을 권장하지 않습니다.

도구 다운로드
도구버전출처
Ghidrathon>= 4.0.0https://github.com/mandiant/Ghidrathon/releases
Python>= 3.8.0https://www.python.org/downloads
Jep== 4.2.0https://pypi.org/project/jep
Ghidra>= 10.3.2https://github.com/NationalSecurityAgency/ghidra/releases
Java>= 17.0.0https://adoptium.net/temurin/releases