
Репозиторий поддержки SLEIGH для редких процессорных ISA
Модули процессоров Ghidra (SLEIGH) для редких архитектур CPU, DSP и GPU. Цель: Ghidra 12.1.4.
Этот проект привносит в Ghidra набор архитектур, охваченных Mr-wolf-is-me/IDA-Processor-Modules, коллекцией модулей процессоров для IDA Pro. Каждый модуль здесь — аналог в Ghidra одного из модулей IDA, перечисленных там.
| Модуль | Архитектура | Идентификаторы языков | Оригинальный модуль 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, лицензии и скриншоты. Этот проект — независимая реализация с нуля (clean-room), а не порт того кода:
dispru/dis7x, GNU binutils, LLVM, NVIDIA nvdisasm).Заслуга за идею и за выбор этих архитектур принадлежит автору IDA-Processor-Modules.
Каждый каталог модуля — это стандартное расширение Ghidra.
Готовые zip-архивы: рабочий процесс Release builds собирает каждый
модуль для трёх последних релизов Ghidra. Каждый тег v* публикует zip-архивы на
странице Releases; остальные push-события сохраняют их как
артефакты рабочего процесса. Zip-архив устанавливается только в ту версию Ghidra, которая указана в его имени.
Соберите zip-архивы расширений самостоятельно:
tools/build-release.sh /opt/ghidra_12.1.4_PUBLIC dist # one zip per module in dist/
Скрипт компилирует спецификации SLEIGH с помощью компилятора из этой Ghidra и собирает каждый модуль с
помощью Gradle wrapper, поставляемого с Ghidra в support/gradle. PRU, MicroBlaze и SASS включают Java-код (расширения
загрузчика ELF), поэтому для сборки требуется полный JDK с javac (пакета только с JRE недостаточно):
JDK 21 или новее для Ghidra 12.1, JDK 25 для Ghidra 12.2. Укажите на него JAVA_HOME.
Установите zip через File → Install Extensions в Ghidra, затем перезапустите 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> выводит дизассемблирование необработанного бинарного файла в режиме headless с линейным просмотром, что удобно для быстрых проверок.
MIT. Эта лицензия распространяется только на код в этом репозитории. Она не распространяется на оригинальные модули IDA, которые имеют собственные условия.