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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
ghidralligator — Ghidra/Sleigh 기반 다중 아키텍처 pcode 에뮬레이터로, 바이너리, 펌웨어 및 임베디드 대상에 대한 AFL++ 퍼징을 지원하며 ASAN을 통해 메모리 손상 버그를 탐지합니다. | Kitploit
도구/GitHubGitHub/airbus-cyber/ghidralligator
Embedded Systems SecurityDynamic Analysis (Sandboxing)Vulnerability AnalysisFuzzingBinary AnalysisFirmware Analysis
GitHubairbus-cyber/ghidralligator

ghidralligator

Ghidra/Sleigh 기반 다중 아키텍처 pcode 에뮬레이터로, 바이너리, 펌웨어 및 임베디드 대상에 대한 AFL++ 퍼징을 지원하며 ASAN을 통해 메모리 손상 버그를 탐지합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Ghidralligator_logo

Ghidralligator

License

Ghidralligator는 Ghidra libsla 기반의 C++ 다중 아키텍처 pcode 에뮬레이터로, AFL++를 이용한 퍼징을 위해 설계되었습니다.

이 도구는 이국적인 아키텍처에서 실행되는 바이너리를 다룰 때 흥미로운 성능을 유지하면서 에뮬레이션 기반 퍼징을 수행할 수 있게 해줍니다.

확장 가능한 구조 덕분에 사실상 모든 아키텍처를 에뮬레이션할 수 있으며(해당 Sleigh 사양 파일을 작성할 수만 있다면) 임의의 코드 조각을 퍼징할 수 있습니다.

설치

Ghidralligator는 Linux 시스템에서 실행할 수 있습니다. C++ 17 버전을 지원하는 GCC 버전만 있으면 됩니다(GCC 12.2.0에서 테스트 및 작동 확인됨).

Ghidra 종속성은 "./src/" 디렉토리 아래 프로젝트 자체에 포함되어 있습니다.

Ghidralligator를 제대로 설치하려면 AFL++를 다운로드하여 컴파일해야 합니다:

  1. AFL++ 클론 및 설치
root@kitploit:~
git clone https://github.com/AFLplusplus/AFLplusplus
cd AFLplusplus
make distrib
sudo make install
  1. Ghidralligator 클론 및 컴파일:
root@kitploit:~
git clone https://github.com/airbus-cyber/ghidralligator
cd ghidralligator
make ghidralligator
  1. 에뮬레이션하려는 아키텍처에 맞는 .sla 파일을 가져옵니다. .sla 파일을 직접 작성하거나 공식 Ghidra 저장소(여기)에서 이미 존재하는 파일을 다운로드할 수 있습니다. 프로젝트의 "./specfiles" 폴더에 포함된 기본 .sla 파일 세트를 찾을 수 있습니다.

Ghidralligator란 무엇인가?

Ghidralligator는 바이너리를 계측(instrument), 실행, 퍼징하기 위해 많은 설정과 수동 수정이 필요한 기존 에뮬레이터와, 확장이 어렵고 특정하고 비일반적인 애플리케이션에 적합하지 않은 "블랙박스" 에뮬레이터 사이의 격차를 메우는 것을 목표로 합니다.

주 용도는 클로즈드 소스 바이너리의 취약점 연구이며, 특히 이국적인 아키텍처에서 실행되는 임베디드 디바이스 애플리케이션/펌웨어를 대상으로 할 때 유용합니다.

Ghidralligator는 afl_ghidra_emu의 후속작입니다. 실행 속도를 크게 개선했으며 힙 메모리 손상 탐지(ASAN)와 같은 유용한 기능을 포함합니다.

다양한 메모리 손상을 탐지할 수 있습니다: 경계를 벗어난 읽기/쓰기 작업, use-after-free, double-free, 초기화되지 않은 메모리 읽기, 읽기/쓰기/실행 접근 위반 등...

Ghidralligator를 실행하려면 다음 단계를 수행해야 합니다:

  • 메모리 매핑 레이아웃과 프로그램의 초기 상태를 정의하는 구성 파일 설정
  • 훅(hooks) 설계.

문서

  • Ghidralligator 구성 파일 : 구성 파일 작성에 대한 문서.
  • Ghidralligator 훅 : 사용자 훅 파일 작성에 대한 문서.

튜토리얼

Ghidralligator 사용법을 이해하기 위해 서로 다른 아키텍처로 컴파일된 취약한 프로그램의 예제가 준비되어 있습니다.

run_examples.sh를 실행하여 ASAN 메커니즘이 동작하는 것을 확인할 수 있습니다.

빠른 시작

Ghidralligator는 여러 명령줄 옵션을 제공합니다:

root@kitploit:~
usage: ./ghidralligator [OPTION]

  -h 			도움말을 출력하고 종료합니다.

  -m [replay|fuzz]	에뮬레이션 전략을 지정합니다. [필수]
				'replay' 모드에서 에뮬레이터는 프로그램을 한 번만 실행하며, 단일 루프 후 종료됩니다.
				'fuzz' 모드에서는 이 프로그램이 AFL을 통해 실행되어야 합니다.

  -c [FILENAME]		로드할 에뮬레이터 json 구성 파일을 지정합니다. [필수]

  -i [FILENAME]		리플레이 세션 중에 삽입할 테스트 케이스 파일을 지정합니다. [선택]

  -I 			정보 로그 표시 (/!\ 에뮬레이션 속도 저하). [선택]
  -D 			디버그 및 정보 로그 표시 (/!\ 에뮬레이션 속도 저하). [선택]

  -t 			로그를 ./ghidraligator.log 파일에 저장합니다. [선택]


표준 에뮬레이션 사용법:

root@kitploit:~
$ ./ghidralligator -m replay -c examples/x86/config.json -I -i examples/x86/input/normal_use_case.bin

gif replay

표준 AFL++ 퍼징 세션 사용법:

root@kitploit:~
mkdir afl_inputs afl_outputs
echo -n "AAAAAA" > ./afl_inputs/input.bin
$ AFL_SKIP_BIN_CHECK=1 afl-fuzz -D -i ./afl_inputs -o ./afl_outputs/ -- ./ghidralligator -m fuzz -c examples/x86/config.json

gif fuzzing

제한 사항

  • Ghidralligator는 .sla 파일(Sleigh 명령어 정의 파일) 덕분에 코드를 에뮬레이션할 수 있습니다. Ghidra 커뮤니티에서 제공하는 SLA 파일은 부분적으로 구현되어 있을 수 있습니다. 일관된 에뮬레이션을 얻으려면 사용자가 관련 sleigh 아키텍처 정의를 완성하거나 몇 가지 훅을 추가해야 할 수 있습니다.

  • Ghidralligator는 에뮬레이션 목적을 위해 높은 성능을 갖도록 설계되지 않은 Ghidra를 기반으로 합니다. 따라서 표준 아키텍처(x86 linux / windows 바이너리)에서 afl_qemu와 같은 기존 퍼저와 경쟁할 수 없습니다.

  • Ghidra 프로젝트는 지속적으로 진화하고 있으므로 향후 Ghidra 버전을 위해 Ghidralligator 종속성을 수동으로 업데이트하는 것은 권장되지 않습니다. 이 도구는 Ghidra 11.0.3 디컴파일러 소스로 빌드 및 테스트되었습니다. 향후 버전에서 깨질 수 있으며, 11.0.3 미만 버전과의 하위 호환성은 지원되지 않습니다. Ghidra 종속성은 이 저장소에 포함되어 있으므로 사용자에게는 투명합니다.

라이선스

Ghidralligator는 Apache 라이선스 버전 2.0에 따라 배포됩니다.

Ghidralligator 코드는 NationalSecurityAgency의 Ghidra 프로젝트 코드를 포함하며, Apache 라이선스 2.0에 따라 배포됩니다.

Ghidralligator 구성 파일 파서는 Niels Lohmann의 C++ json 라이브러리를 포함하며, MIT 라이선스에 따라 배포됩니다.

Ghidralligator 모듈은 Yann Collet의 xxHash 라이브러리를 포함하며, BSD 2-Clause License에 따라 배포됩니다.

작성자

  • Flavian Dola - Airbus (Twitter)
  • Guillaume Orlando - Airbus (Twitter)
도구 다운로드