
希少なプロセッサISA向けのSLEIGHサポートのリポジトリ
Ghidra プロセッサモジュール(SLEIGH)。珍しい CPU、DSP、GPU アーキテクチャ向け。対象: Ghidra 12.1.4。
本プロジェクトは、IDA Pro プロセッサモジュールのコレクションである Mr-wolf-is-me/IDA-Processor-Modules で扱われているアーキテクチャ群を Ghidra に導入するものです。ここに含まれる各モジュールは、 そこに列挙されている IDA モジュールのうちの1つに対応する 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 リリース3つ向けに全モジュールをビルドします。各 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 モジュールは対象外であり、これらには独自の条件があります。