
Um repositório de suporte SLEIGH para ISAs de processadores raros
Módulos de processador Ghidra (SLEIGH) para arquiteturas incomuns de CPU, DSP e GPU. Alvo: Ghidra 12.1.4.
Este projeto traz para o Ghidra o conjunto de arquiteturas cobertas por Mr-wolf-is-me/IDA-Processor-Modules, uma coleção de módulos de processador para o IDA Pro. Cada módulo aqui é a contraparte no Ghidra de um dos módulos do IDA listados lá.
| Módulo | Arquitetura | IDs de linguagem | Módulo IDA original |
|---|---|---|---|
| PRU | TI PRU / PRU-ICSS, revisões de núcleo V0–V4 | PRU:LE:32:v0 … PRU:LE:32:v4 | pru-ida |
| MicroBlaze | AMD/Xilinx MicroBlaze, 32/64 bits, 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, de Kepler a Blackwell | SASS:LE:64:SM35, SM52, SM60, SM70, SM75, SM80, SM86, SM89, SM90, SM100, SM120 | sass-ida |
O README de cada módulo lista suas variantes de linguagem, o quão próximo ele corresponde ao desassemblador de referência, o que o p-code modela, lacunas conhecidas e como executar seus testes. STATUS.md acompanha o que funciona e o que não funciona em todos os módulos, além das lições aprendidas.
Os módulos do IDA são distribuídos como zips de release sob termos que proíbem trabalhos derivados; os próprios repositórios contêm apenas READMEs, licenças e capturas de tela. Este projeto é uma implementação independente, clean-room, não um port daquele código:
dispru/dis7x, GNU binutils, LLVM, NVIDIA nvdisasm).O crédito pela ideia e pela escolha dessas arquiteturas vai para o autor do IDA-Processor-Modules.
Cada diretório de módulo é uma extensão padrão do Ghidra.
Zips pré-compilados: o workflow Release builds compila cada
módulo para as três versões mais recentes do Ghidra. Cada tag v* publica os zips na
página Releases; outros pushes os mantêm como
artefatos do workflow. Um zip só é instalado na versão do Ghidra indicada em seu nome.
Compile os zips da extensão você mesmo:
tools/build-release.sh /opt/ghidra_12.1.4_PUBLIC dist # one zip per module in dist/
O script compila as especificações SLEIGH com o compilador dessa instalação do Ghidra e compila cada módulo com o
wrapper do Gradle que o Ghidra inclui em support/gradle. PRU, MicroBlaze e SASS incluem código Java (extensões
do carregador ELF), portanto a compilação requer um JDK completo com javac (um pacote apenas com JRE não é
suficiente): JDK 21 ou mais recente para o Ghidra 12.1, JDK 25 para o Ghidra 12.2. Aponte JAVA_HOME para ele.
Instale o zip via File → Install Extensions no Ghidra e, em seguida, reinicie o Ghidra.
Para desenvolvimento, crie um symlink de cada módulo em uma instalação do Ghidra e compile as especificações 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> imprime uma desmontagem linear headless de um
binário bruto, o que é útil para verificações rápidas.
MIT. Esta licença cobre apenas o código neste repositório. Não cobre os módulos originais do IDA, que possuem seus próprios termos.