
희귀 프로세서 ISA를 위한 SLEIGH 지원 저장소
희귀 CPU, DSP 및 GPU 아키텍처를 위한 Ghidra 프로세서 모듈(SLEIGH). 대상: Ghidra 12.1.4.
이 프로젝트는 IDA Pro 프로세서 모듈 모음인 Mr-wolf-is-me/IDA-Processor-Modules에서 다루는 아키텍처 집합을 Ghidra로 가져옵니다. 여기 있는 각 모듈은 해당 목록에 나열된 IDA 모듈 중 하나에 대응하는 Ghidra 구현입니다.
| 모듈 | 아키텍처 | 언어 ID | 원본 IDA 모듈 |
|---|---|---|---|
| PRU | TI PRU / PRU-ICSS, 코어 리비전 V0–V4 | PRU:LE:32:v0 … PRU:LE:32:v4 | pru-ida |
| MicroBlaze | AMD/Xilinx MicroBlaze, 32/64비트, BE/LE | MicroBlaze:{BE,LE}:{32,64}:default | microblaze-ida |
| xCORE | XMOS xCORE XS1, XS2 (xCORE-200), XS3 (xcore.ai) | xCORE:LE:32:XS1, XS2, XS3 | xcore-ida |
| C7x | TI C7000 DSP (C7100, C7120, C7504, C7524) | C7x:LE:64:C7100, C7120, C7504, C7524 | c7x-ida |
| SASS | NVIDIA GPU SASS, Kepler부터 Blackwell까지 | SASS:LE:64:SM35, SM52, SM60, SM70, SM75, SM80, SM86, SM89, SM90, SM100, SM120 | sass-ida |
각 모듈의 README에는 언어 변형, 참조 디스어셈블러와의 일치도, p-code가 모델링하는 내용, 알려진 격차, 테스트 실행 방법이 나열되어 있습니다. STATUS.md는 모든 모듈에 걸쳐 무엇이 동작하고 무엇이 동작하지 않는지, 그리고 얻은 교훈을 추적합니다.
IDA 모듈은 파생 저작물을 금지하는 조건으로 릴리스 zip 형태로 배포되며, 저장소 자체에는 README, 라이선스, 스크린샷만 들어 있습니다. 이 프로젝트는 해당 코드의 포팅이 아닌 독립적인 클린룸 구현입니다:
dispru/dis7x, GNU binutils, LLVM,
NVIDIA nvdisasm)와 대조하여 검증되었습니다.아이디어와 이들 아키텍처 선택에 대한 공로는 IDA-Processor-Modules의 저자에게 있습니다.
각 모듈 디렉터리는 표준 Ghidra 확장입니다.
미리 빌드된 zip: Release builds 워크플로가 최신 Ghidra
릴리스 세 개에 대해 모든 모듈을 빌드합니다. 각 v* 태그는 zip을
Releases 페이지에 게시하며, 그 밖의
푸시는 워크플로 아티팩트로 보관합니다. zip은 이름에 명시된 Ghidra 버전에만 설치됩니다.
확장 zip을 직접 빌드하기:
tools/build-release.sh /opt/ghidra_12.1.4_PUBLIC dist # one zip per module in dist/
스크립트는 해당 Ghidra의 컴파일러로 SLEIGH 스펙을 컴파일하고, Ghidra가 support/gradle에 포함한 Gradle 래퍼로 각 모듈을 빌드합니다. PRU, MicroBlaze, SASS는 Java 코드(ELF 로더 확장)를 포함하므로, 빌드에는 javac가 포함된 전체 JDK가 필요합니다(JRE 전용 패키지로는 충분하지 않음). Ghidra 12.1에는 JDK 21 이상, Ghidra 12.2에는 JDK 25가 필요합니다. JAVA_HOME을 해당 JDK로 지정하세요.
Ghidra에서 File → Install Extensions를 통해 zip을 설치한 다음 Ghidra를 재시작하세요.
개발용으로는 모든 모듈을 Ghidra 설치 디렉터리에 심볼릭 링크하고 SLEIGH 스펙을 컴파일하세요:
export GHIDRA_INSTALL_DIR=/opt/ghidra_12.1.4_PUBLIC
tools/link-modules.sh
for d in */data/languages; do "$GHIDRA_INSTALL_DIR/support/sleigh" -a "$d"; done
tools/ghidra-dis.sh <language-id> <raw.bin>는 원시 바이너리의 헤드리스 선형 스윕 디스어셈블리를 출력하며, 빠른 확인에 유용합니다.
MIT. 이 라이선스는 이 저장소의 코드에만 적용됩니다. 자체 약관이 있는 원본 IDA 모듈에는 적용되지 않습니다.