
Un repository di supporto SLEIGH per ISA di processori rari
Moduli processore Ghidra (SLEIGH) per architetture CPU, DSP e GPU non comuni. Target: Ghidra 12.1.4.
Questo progetto porta in Ghidra l'insieme di architetture coperte da Mr-wolf-is-me/IDA-Processor-Modules, una raccolta di moduli processore per IDA Pro. Ogni modulo qui presente è la controparte Ghidra di uno dei moduli IDA elencati là.
| Modulo | Architettura | ID linguaggio | Modulo IDA originale |
|---|---|---|---|
| PRU | TI PRU / PRU-ICSS, revisioni core 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, da Kepler a Blackwell | SASS:LE:64:SM35, SM52, SM60, SM70, SM75, SM80, SM86, SM89, SM90, SM100, SM120 | sass-ida |
Il README di ciascun modulo elenca le sue varianti di linguaggio, quanto fedelmente corrisponde al disassembler di riferimento, cosa modellano i p-code, le lacune note e come eseguire i suoi test. STATUS.md tiene traccia di ciò che funziona e di ciò che non funziona in tutti i moduli, oltre alle lezioni apprese.
I moduli IDA sono distribuiti come zip di release con termini che vietano le opere derivate; i repository stessi contengono solo README, licenze e screenshot. Questo progetto è un'implementazione indipendente, clean-room, non un port di quel codice:
dispru/dis7x, GNU binutils, LLVM, NVIDIA nvdisasm).Il merito dell'idea e della scelta di queste architetture va all'autore di IDA-Processor-Modules.
Ogni directory di modulo è un'estensione Ghidra standard.
Zip precompilati: il workflow Release builds compila ogni
modulo per le tre release Ghidra più recenti. Ogni tag v* pubblica gli zip sulla
pagina Releases; gli altri push li mantengono come
artefatti del workflow. Uno zip si installa solo nella versione di Ghidra indicata nel suo nome.
Compila tu stesso gli zip dell'estensione:
tools/build-release.sh /opt/ghidra_12.1.4_PUBLIC dist # one zip per module in dist/
Lo script compila le specifiche SLEIGH con il compilatore di quella versione di Ghidra e costruisce ogni modulo con il
wrapper Gradle fornito da Ghidra in support/gradle. PRU, MicroBlaze e SASS includono codice Java (estensioni del
loader ELF), quindi la build richiede un JDK completo con javac (un pacchetto solo JRE non è
sufficiente): JDK 21 o superiore per Ghidra 12.1, JDK 25 per Ghidra 12.2. Imposta JAVA_HOME su di esso.
Installa lo zip tramite File → Install Extensions in Ghidra, quindi riavvia Ghidra.
Per lo sviluppo, crea un symlink di ogni modulo in un'installazione di Ghidra e compila le specifiche 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> stampa un disassemblaggio headless a scansione lineare di un
binario raw, utile per verifiche rapide.
MIT. Questa licenza copre solo il codice presente in questo repository. Non copre i moduli IDA originali, che hanno termini propri.