Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
SuperGhidra — 고성능 Ghidra 아키텍처 및 GPU 가속 제품군: LZ4/Zstd B-트리 코덱, 영구 무잠금 데몬, WGPU ARM64 스캐너, Z3 SMT 증명기, 신경망 디컴파일러 | Kitploit
도구/GitHubGitHub/yuatemycat/superghidra
Android SecurityStatic AnalysisVulnerability AnalysisDynamic Code Analysis (DAST)Reverse EngineeringFuzzingMalware AnalysisUtilities & FrameworksBinary AnalysisAI-Assisted ReversingBinary Exploitation
1602일 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
GitHubyuatemycat/superghidra

SuperGhidra

고성능 Ghidra 아키텍처 및 GPU 가속 제품군: LZ4/Zstd B-트리 코덱, 영구 무잠금 데몬, WGPU ARM64 스캐너, Z3 SMT 증명기, 신경망 디컴파일러

저장소 보기웹사이트

SuperGhidra

License: Apache-2.0 PyPI version Python 3.10+ CI

Ghidra를 더 빠르게 스크립팅할 수 있게 해주는 Python 도구 모음과, 기본적으로 제공되지 않는 몇 가지 분석 기능을 제공합니다. MFC/C++ 클래스 복구, Serialize() 레이아웃 추적, 버전 간 함수 매칭, 그리고 P-code용 Z3 동등성 검사기를 포함합니다.

왜 필요한가

Ghidra의 분석 기능은 뛰어나지만, 스크립트로 구동하기에는 느립니다. 헤드리스 실행마다 JVM 시작에 5–15초가 소요됩니다. 프로젝트 잠금 때문에 두 번째 프로세스가 읽을 수 없습니다. 20 MB ARM64 .text 섹션을 훑거나 두 빌드 간 45,000개 함수를 매칭하는 대량 작업은 단일 CPU 스레드에서 실행됩니다.

SuperGhidra는 읽기 전용 Ghidra 프로젝트 하나를 백그라운드 데몬에 로드해 두고 그 응답을 캐시합니다. 대량 작업은 순수 Python, NumPy 또는 GPU 컴퓨트 셰이더로 옮겨집니다. 포맷 및 클래스 복구 작업의 상당 부분은 Ghidra가 전혀 필요하지 않습니다.

구성 요소

패키지기능
coreSQLite 캐시를 갖춘 127.0.0.1:5073 데몬. 이름 변경과 주석은 JSON 오버레이에 기록되며 .rep에는 절대 기록되지 않습니다. 리소스 거버너(eco / balanced / turbo / auto)와 공유 메모리 IPC도 포함합니다.
formatsELF / PE / Mach-O 로더, MSVC RTTI 및 MFC CRuntimeClass 복구, Serialize() 추적, CArchive 디코더, DWARF 5 / Breakpad / map 내보내기. 이 중 어느 것도 Ghidra가 필요하지 않습니다.
liftersARM64 → P-code 리프터(정수 서브셋), x86 및 ARM/Thumb 디코더, 두 스니펫의 동등성을 증명하거나 UNKNOWN을 반환하는 Z3 검사기.
diffCFG 특징 벡터로 버전 간 함수를 매칭한 뒤, 오프셋이 이동한 구조체 필드를 찾아 접근을 재작성합니다.
accelerationARM64에서 ADRP+ADD/LDR 쌍과 함수 프롤로그를 스캔하는 WGPU 셰이더로, SIMD CPU 폴백을 갖춥니다.
storageGhidra의 16 KB 버퍼 페이지용 LZ4 / Zstd 코덱과 독립 실행형 Java BufferFile 코덱.
integrationsAPK ↔ JNI 상호 참조기, 디바이스 허용 목록을 갖춘 Android 에뮬레이터 메모리 리더, LLM 네이밍 파이프라인.

각 패키지에는 superghidra/ 아래에 자체 README가 있습니다.

현재까지의 결과

모든 벤치마크는 실제 하드웨어(Intel Core i9-12950HX, 64 GB DDR5, NVIDIA RTX A5500 Laptop GPU)와 멀티 플랫폼 CI 매트릭스에서 측정되었습니다. 전체 실측 데이터와 로그는 docs/benchmarks/에 있습니다.

하드웨어 및 처리량 매트릭스

워크로드 / 벤치마크입력 크기 / 대상엔진 / 백엔드측정 시간측정 처리량 / 결과상태
ARM64 ADRP + ADD/LDR 스윕4.0 MB ARM64 블록 (1,048,576 insns)NumPy SIMD7.28 ms143.95 M insn/s1,049개 쌍 식별
ARM64 함수 시더4.0 MB ARM64 블록 (1,048,576 insns)NumPy SIMD8.31 ms126.19 M insn/s1,049개 프롤로그 식별
대규모 GPU ADRP 스윕20.0 MB ARM64 블록 (5,242,880 insns)WGPU DirectX 1241.20 ms127.25 M insn/sCPU와 비트 단위 일치
버퍼 파일 압축 (LZ4)합성 16 KB 페이지 1,000개 (16.0 MB)LZ4 block36.12 ms442.9 MB/s (4.84x 비율)디스크 79.32% 절감
버퍼 파일 압축 (Zstd)합성 16 KB 페이지 1,000개 (16.0 MB)Zstd Level 377.48 ms206.5 MB/s (7.39x 비율)디스크 86.47% 절감
디컴파일 쿼리 캐시라이브 Ghidra 데몬 RPCSQLite L2 캐시< 0.01 ms> 100,000 req/s인메모리 오버레이 일치
SHM 채널 IPC 왕복64 KB 메모리 매핑 링 버퍼Windows SHM IPC5.12 µs195,300 msg/s제로 카피 공유 메모리

디컴파일러 통과율: HumanEval-Decompile (평가된 함수 1,296개)

gcc -O0 -lm에서 최적화 수준 O0–O3 전반에 걸쳐 평가되었습니다. 함수는 오류 없이 컴파일되어야 하며 테스트 스위트를 통과해야 합니다:

디컴파일러 파이프라인컴파일 가능 통과 수통과율 (%)원본 Ghidra 대비 상대 델타IDA Pro 대비 상대 델타
Stock NSA Ghidra107 / 1,2968.26%기준선-8.64%
상용 IDA Pro219 / 1,29616.90%+8.64%기준선
SuperGhidra 컴파일 가능 필터294 / 1,29622.69%+14.43%+5.79%
  • 중복: IDA Pro와 SuperGhidra 모두에서 170개 함수가 통과하며, IDA Pro가 실패한 124개 함수가 SuperGhidra에서 통과합니다.
  • 정제 회귀: 전체 1,296개 함수에서 0건의 회귀가 발생했습니다.

이중 OS 테스트 매트릭스 (GitHub Actions CI)

모든 커밋에서 전체 6개 작업 매트릭스가 통과합니다 (실행 #39691442336):

운영 체제Python 3.10Python 3.11Python 3.12Pytest 테스트 수통과율
Ubuntu Linux (ubuntu-latest)32s26s25s626개 수집 (572개 통과, 42개 건너뜀, 11개 제외)100%
Windows Server (windows-latest)1m 25s1m 06s53s626개 수집 (583개 통과, 32개 건너뜀, 11개 제외)100%

상세 로그와 측정 방법론은 docs/benchmarks/EMPIRICAL_TEST_BENCHMARK_MATRIX.md에 문서화되어 있습니다.

설치

PyPI에서:

pip install superghidra

선택적 가속 및 통합 추가 기능:

pip install "superghidra[all]"       # all optional backends
pip install "superghidra[smt]"       # Z3 P-code equivalence checker
pip install "superghidra[gpu]"       # WGPU compute shaders (ADRP/prologue sweeps)
pip install "superghidra[storage]"   # LZ4 & Zstandard 16 KB page compression
pip install "superghidra[ghidra]"    # PyGhidra bridge & JVM headless bindings
pip install "superghidra[frida]"     # Live emulator runtime inspection

소스에서 (개발):

git clone https://github.com/yuatemycat/SuperGhidra
cd SuperGhidra
pip install -e ".[all]"
python -m pytest -q

통합 CLI:

SuperGhidra는 통합된 독립 실행형 명령줄 실행 파일 superghidra와 함께 제공됩니다:

# Display version and hardware acceleration telemetry
superghidra version

# Staged P-code decompiler (MBA simplification, opaque branch pruning, goto-free C)
superghidra decompile target.dll --rva 0x140001000 --arch x86_64 -o decompiled.c

# Import IDA Pro .til type library and dump schema catalog
superghidra til-import mssdk64.til -o catalog.json

# Match binary bytes against IDA FLIRT signature database
superghidra flirt-match vc32rtf.sig target.exe --rva 0x1000

# Recover MSVC / MFC C++ class hierarchies, RTTI structures, and virtual call tables
superghidra rtti-recover app.dll -o classes.json

# Filter raw decompiler output into clean, compilable C
superghidra filter raw_decompile.c -o clean.c

Windows 바이너리 검사(Ghidra 불필요):

python -m superghidra.formats.binary_loader app.dll          # sections, imports, exports
python -m superghidra.formats.msvc_class_recovery app.dll    # RTTI + MFC classes
python -m superghidra.formats.serialize_trace app.dll CMyDoc # Serialize() field layout

Python에서:

from superghidra.formats.binary_loader import load_binary
from superghidra.formats.msvc_class_recovery import recover_classes
import superghidra as sg

img = load_binary("app.dll")
print(img.format, img.arch, len(img.sections))

report = recover_classes("app.dll")
print(len(report.mfc_classes), "MFC classes")

# Lift one ARM64 instruction and check it against itself with Z3
ops = sg.ARM64PcodeLifter().lift_instruction(0x1000, 0x91008041)  # add x1, x2, #0x20
print(sg.SMTPcodeVerifier().verify_equivalence(ops, ops).equivalent)

데몬을 통해 Ghidra 프로젝트 쿼리 (JDK 21, Ghidra 11+ 및 pyghidra 필요):

export GHIDRA_INSTALL_DIR=/path/to/ghidra
python ghidra_oracle.py --project-dir ~/re/proj --project-name game --program-name libgame.so status
python ghidra_oracle.py decompile 0x00CF2D84   # first call boots Ghidra, later calls hit the cache
python ghidra_oracle.py rename 0x00CF2D84 World_tick
python ghidra_oracle.py mode eco               # throttle CPU use
python ghidra_oracle.py stop

python ghidra_oracle.py --help를 실행하면 모든 명령을 나열할 수 있습니다.

구성은 환경 변수에서 읽어오며, 특정 머신에 종속되는 항목은 없습니다:

변수용도
GHIDRA_INSTALL_DIR, JAVA_HOMEGhidra 및 JDK 위치 (데몬, 헤드리스 실행, Java 코덱 빌드)
SUPERGHIDRA_PROJECTS데몬의 기본 프로젝트: ;로 구분된 dir,name[,program] 항목
SUPERGHIDRA_MSVC_ROOTgcc/clang이 PATH에 없을 때 사용하는 포터블 MSVC 폴더
SUPERGHIDRA_TEST_ARM64_ELF, SUPERGHIDRA_TEST_SWDM, SUPERGHIDRA_TEST_SW_ROOT통합 테스트용 선택적 실제 바이너리 / SOLIDWORKS 설치. 설정하지 않으면 해당 테스트는 건너뜁니다.

MCP

도구 다운로드