Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ghidralligator — Ghidra/Sleighを使用したマルチアーキテクチャpcodeエミュレータ。AFL++によるバイナリ、ファームウェア、組み込みターゲットのファジングに対応し、ASANでメモリ破壊バグを検出します。 | Kitploit
ツール/GitHubGitHub/airbus-cyber/ghidralligator
組み込みシステムセキュリティ動的分析 (サンドボックス)脆弱性分析ファジングバイナリ解析ファームウェア解析
GitHubairbus-cyber/ghidralligator

ghidralligator

Ghidra/Sleighを使用したマルチアーキテクチャpcodeエミュレータ。AFL++によるバイナリ、ファームウェア、組み込みターゲットのファジングに対応し、ASANでメモリ破壊バグを検出します。

リポジトリを見る
331252年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Ghidralligator_logo

Ghidralligator

License

Ghidralligator は、Ghidra の libsla をベースにした C++ 製マルチアーキテクチャ pcode エミュレータであり、AFL++ によるファジングを目的として設計されています。

エミュレーションベースのファジングを実行できる一方で、エキゾチックなアーキテクチャ上で動作するバイナリを扱う際にも、優れたパフォーマンスを維持できます。

拡張可能な設計であるため、対応する Sleigh 仕様ファイル を書くことができれば、事実上あらゆるアーキテクチャをエミュレートし、任意のコード片をファジングすることが容易に可能です。

インストール

Ghidralligator は Linux システム上で動作します。必要なのは、C++ バージョン 17 をサポートする GCC のみです(GCC バージョン 12.2.0 でテスト済み、動作確認済み)。

Ghidra の依存関係は、プロジェクト自体の "./src/" ディレクトリ内に埋め込まれています。

Ghidralligator を正しくインストールするには、以下の手順で AFL++ をダウンロードしてコンパイルする必要があります:

  1. AFL++ をクローンしてインストールします
root@kitploit:~
git clone https://github.com/AFLplusplus/AFLplusplus
cd AFLplusplus
make distrib
sudo make install
  1. Ghidralligator をクローンしてコンパイルします:
root@kitploit:~
git clone https://github.com/airbus-cyber/ghidralligator
cd ghidralligator
make ghidralligator
  1. エミュレートしたいアーキテクチャに対応する適切な .sla ファイルを取得します。 .sla ファイルは自分で作成することも、公式の Ghidra リポジトリ (ここ) から既存のものをダウンロードすることもできます。プロジェクト内の "./specfiles" フォルダには、デフォルトの .sla ファイル一式が埋め込まれています。

Ghidralligator とは ?

Ghidralligator は、計測・実行・ファジングのために多くのセットアップや手動による変更を必要とする既存のエミュレータと、拡張が難しく特定の特殊な用途には適さない「ブラックボックス」エミュレータとの間のギャップを埋めることを目的としています。

主な用途は、クローズソースバイナリの脆弱性調査、特にエキゾチックなアーキテクチャで動作する組み込みデバイスアプリケーション / ファームウェアを対象とした調査です。

Ghidralligator は afl_ghidra_emu の後継です。実行速度が大幅に向上し、ヒープメモリ破損検出 (ASAN) などの便利な機能が追加されています。

幅広い種類のメモリ破損を検出できます: 範囲外の読み取り/書き込み操作、use-after-free、double-free、未初期化メモリの読み取り、読み取り/書き込み/実行アクセス違反など...

Ghidralligator を実行するには、以下の手順を実行する必要があります:

  • メモリマッピングレイアウトとプログラムの初期状態を定義する設定ファイルを用意する
  • フックを設計する。

ドキュメント

  • Ghidralligator 設定ファイル : 設定ファイルの作成方法に関するドキュメント。
  • Ghidralligator フック : ユーザーフックファイルの作成方法に関するドキュメント。

チュートリアル

Ghidralligator の使用方法を理解するために、さまざまなアーキテクチャでコンパイルされた脆弱なプログラムの例が用意されています。

run_examples.sh を実行すると、ASAN メカニズムの動作を確認できます。

クイックスタート

Ghidralligator にはいくつかのコマンドラインオプションがあります:

root@kitploit:~
usage: ./ghidralligator [OPTION]

  -h 			このヘルプを表示して終了します。

  -m [replay|fuzz]	エミュレーション戦略を指定します。 [必須]
				'replay' モードでは、エミュレータはプログラムを一度だけ起動し、単一ループの後に終了します。
				'fuzz' モードでは、このプログラムは AFL を通じて起動する必要があります。

  -c [FILENAME]		読み込むエミュレータの json 設定ファイルを指定します。 [必須]

  -i [FILENAME]		リプレイセッション中に挿入するテストケースファイルを指定します。 [任意]

  -I 			情報ログを表示します (/!\ エミュレーションが遅くなります)。 [任意]
  -D 			デバッグおよび情報ログを表示します (/!\ エミュレーションが遅くなります)。 [任意]

  -t 			ログを ./ghidraligator.log ファイルに保存します。 [任意]


標準的なエミュレーションの使用法:

root@kitploit:~
$ ./ghidralligator -m replay -c examples/x86/config.json -I -i examples/x86/input/normal_use_case.bin

gif replay

標準的な AFL++ ファジングセッションの使用法:

root@kitploit:~
mkdir afl_inputs afl_outputs
echo -n "AAAAAA" > ./afl_inputs/input.bin
$ AFL_SKIP_BIN_CHECK=1 afl-fuzz -D -i ./afl_inputs -o ./afl_outputs/ -- ./ghidralligator -m fuzz -c examples/x86/config.json

gif fuzzing

制限事項

  • Ghidralligator は .sla ファイル (Sleigh 命令定義ファイル) を使用してコードをエミュレートできます。Ghidra コミュニティが提供する SLA ファイルは部分的にしか実装されていない場合があります。一貫したエミュレーションを得るには、関連する Sleigh アーキテクチャ定義を補完するか、いくつかのフックを追加する必要があるかもしれません。

  • Ghidralligator は、エミュレーション目的での高性能を考慮して設計されていない Ghidra に基づいています。そのため、標準的なアーキテクチャ (x86 Linux / Windows バイナリ) において、afl_qemu のような一般的なファザーと競合することはできません。

  • Ghidra プロジェクトは常に進化しているため、将来の Ghidra バージョンに向けて Ghidralligator の依存関係を手動で更新することは推奨されません。このツールは Ghidra 11.0.3 デコンパイラソースを使用してビルドおよびテストされています。将来のバージョンでは動作しなくなる可能性があり、11.0.3 より前のバージョンとの下位互換性はサポートされていません。Ghidra の依存関係はこのリポジトリに含まれているため、ユーザーにとってこれは透過的です。

ライセンス

Ghidralligator は Apache ライセンス バージョン 2.0 の下でリリースされています。

Ghidralligator のコードには、NationalSecurityAgency による Ghidra プロジェクトのコードが含まれており、Apache ライセンス 2.0 の下でリリースされています。

Ghidralligator の設定ファイルパーサには、Niels Lohmann による C++ json ライブラリ が含まれており、MIT ライセンス の下でリリースされています。

Ghidralligator モジュールには、Yann Collet による xxHash ライブラリ が含まれており、BSD 2-Clause License の下でリリースされています。

著者

  • Flavian Dola - Airbus (Twitter)
  • Guillaume Orlando - Airbus (Twitter)
ツールをダウンロード