
Ein Repository mit SLEIGH-Unterstützung für seltene Prozessor-ISAs
Ghidra-Prozessormodule (SLEIGH) für seltene CPU-, DSP- und GPU-Architekturen. Ziel: Ghidra 12.1.4.
Dieses Projekt bringt die Menge an Architekturen in Ghidra, die von Mr-wolf-is-me/IDA-Processor-Modules abgedeckt wird, einer Sammlung von IDA-Pro-Prozessormodulen. Jedes Modul hier ist das Ghidra-Gegenstück zu einem der dort aufgeführten IDA-Module.
| Modul | Architektur | Sprach-IDs | Ursprüngliches IDA-Modul |
|---|---|---|---|
| PRU | TI PRU / PRU-ICSS, Core-Revisionen V0–V4 | PRU:LE:32:v0 … PRU:LE:32:v4 | pru-ida |
| MicroBlaze | AMD/Xilinx MicroBlaze, 32/64-Bit, 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 bis Blackwell | SASS:LE:64:SM35, SM52, SM60, SM70, SM75, SM80, SM86, SM89, SM90, SM100, SM120 | sass-ida |
Die README jedes Moduls listet seine Sprachvarianten auf, wie genau es mit dem Referenz- Disassembler übereinstimmt, was das p-code modelliert, bekannte Lücken und wie man seine Tests ausführt. STATUS.md verfolgt, was in allen Modulen funktioniert und was nicht, sowie gewonnene Erkenntnisse.
Die IDA-Module werden als Release-Zips unter Bedingungen vertrieben, die abgeleitete Werke verbieten; die Repositories selbst enthalten nur READMEs, Lizenzen und Screenshots. Dieses Projekt ist eine unabhängige Clean-Room-Implementierung, kein Port jenes Codes:
dispru/dis7x, GNU binutils, LLVM, NVIDIA nvdisasm).Die Anerkennung für die Idee und für die Auswahl dieser Architekturen gebührt dem Autor von IDA-Processor-Modules.
Jedes Modulverzeichnis ist eine standardmäßige Ghidra-Erweiterung.
Vorgefertigte Zips: Der Workflow Release builds baut jedes
Modul für die drei neuesten Ghidra-Releases. Jeder v*-Tag veröffentlicht die Zips auf der
Releases-Seite; andere Pushes behalten sie als
Workflow-Artefakte. Ein Zip lässt sich nur in die Ghidra-Version installieren, die in seinem Namen steht.
Die Erweiterungs-Zips selbst bauen:
tools/build-release.sh /opt/ghidra_12.1.4_PUBLIC dist # one zip per module in dist/
Das Skript kompiliert die SLEIGH-Spezifikationen mit dem Compiler dieser Ghidra-Version und baut jedes Modul mit dem Gradle-Wrapper, den Ghidra in support/gradle mitliefert. PRU, MicroBlaze und SASS enthalten Java-Code (ELF-Loader-Erweiterungen), daher benötigt der Build ein vollständiges JDK mit javac (ein reines JRE-Paket reicht nicht aus): JDK 21 oder neuer für Ghidra 12.1, JDK 25 für Ghidra 12.2. Richten Sie JAVA_HOME darauf aus.
Installieren Sie das Zip über File → Install Extensions in Ghidra und starten Sie Ghidra anschließend neu.
Für die Entwicklung verlinken Sie jedes Modul symbolisch in eine Ghidra-Installation und kompilieren Sie die SLEIGH-Spezifikationen:
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> gibt eine headless Linear-Sweep-Disassemblierung einer
Rohbinärdatei aus, was für schnelle Prüfungen nützlich ist.
MIT. Diese Lizenz gilt nur für den Code in diesem Repository. Sie gilt nicht für die ursprünglichen IDA-Module, die ihren eigenen Bedingungen unterliegen.