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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ghidra-firmware-utils — Ghidra拡張機能で、PCファームウェアのリバースエンジニアリングを目的とし、PCIオプションROM、Intel Flash Descriptor、coreboot CBFS、UEFIファームウェアボリューム用のローダーを提供します。さらに、型回復とGUID識別のためのUEFIヘルパースクリプトも含まれています。 | Kitploit
ツール/GitHubGitHub/al3xtjames/ghidra-firmware-utils
組み込みシステムセキュリティリバースエンジニアリングハードウェアセキュリティハードウェアとIoTセキュリティバイナリ解析ファームウェア解析
GitHubal3xtjames/ghidra-firmware-utils

ghidra-firmware-utils

Ghidra拡張機能で、PCファームウェアのリバースエンジニアリングを目的とし、PCIオプションROM、Intel Flash Descriptor、coreboot CBFS、UEFIファームウェアボリューム用のローダーを提供します。さらに、型回復とGUID識別のためのUEFIヘルパースクリプトも含まれています。

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
リポジトリを見る
49356135日前Kitploit レビュー済み

Ghidra Firmware Utilities

PC ファームウェアのリバースエンジニアリングを支援する Ghidra 用の各種モジュールです。 これは coreboot プロジェクトの GSoC 2019 プロジェクトとして採択されました。

機能

PCI option ROM ローダー

  • PCI option ROM 用の FS ローダーを実装(複数イメージを含むハイブリッド ROM を処理。例: レガシー x86 + UEFI)
  • PCI option ROM から UEFI 実行ファイルをロード(圧縮イメージを含む)
  • レガシー x86 option ROM 用のエントリポイント関数と各種ヘッダーデータ型を定義

ファームウェアイメージローダー

  • Flash Map (FMAP) イメージと Intel Flash Descriptor (IFD) イメージ用の FS ローダーを実装(フラッシュ領域を表示)
  • Coreboot Filesystem (CBFS) イメージ用の FS ローダーを実装(含まれるファイルを表示し、圧縮を処理)
  • UEFI ファームウェアボリュームとネストされたファームウェアファイルシステム (FFS) ファイル/FFS セクション解析用の FS ローダーを実装

Terse Executable (TE) ローダー

  • TE バイナリ用のバイナリローダーを実装(UEFI PI で頻繁に使用)

UEFI ヘルパースクリプト

  • 基本 UEFI 型用のデータ型ライブラリを含む(EDK2 MdePkg から取得)
  • エントリポイント関数のシグネチャを修正
  • バイナリの .data/.text セグメント内の既知の GUID を定義
  • UEFI テーブルポインタ(gBS/gRT/gST など)のグローバルコピーを特定して定義

ビルドとインストール

JDK 21(以降)と Ghidra 12.0(以降)が必要です。

Ghidra の標準 Gradle ビルドシステムを使用します。ビルド前に GHIDRA_INSTALL_DIR 環境変数を設定するか、Gradle プロパティとして設定してください(IDE でのビルドに便利です):

環境変数

root@kitploit:~
$ export GHIDRA_INSTALL_DIR="/path/to/ghidra"
$ ./gradlew

Gradle プロパティ

root@kitploit:~
echo GHIDRA_INSTALL_DIR=/path/to/ghidra > gradle.properties

[!NOTE] GHIDRA_INSTALL_DIR は support/buildExtension.gradle を含むディレクトリを指す必要があります。 例えば、Flathub パッケージのユーザーは /var/lib/flatpak/app/org.ghidra_sre.Ghidra/current/active/files/lib/ghidra を使用してください。

モジュールの ZIP は dist/ に出力されます。File > Install Extensions を使用し、 緑のプラス記号を選択して拡張機能を参照します。プロンプトが表示されたら Ghidra を再起動します。

正しく機能させるには、プラグインを Ghidra インストールで使用されているものと同じ JRE でビルドする必要があります。 複数の Java ランタイム環境がインストールされている場合は、ビルド前に JAVA_HOME 環境変数を設定して 正しい JRE を選択してください。

使用方法

PCI option ROM ローダー

PCI option ROM を Ghidra プロジェクトに追加します。レガシー x86 option ROM は 直接ロードして解析できます。バイナリ形式が x86 PCI Option ROM に設定されていることを確認し、 バイナリをインポートします。

UEFI option ROM または複数のイメージを含む option ROM は、ファイルシステムローダーを使用して インポートする必要があります。インポートモードの選択を求められたら、File system を選択します。 option ROM 内に含まれるイメージが表示され、解析用にインポートできます。レガシー x86 イメージは x86 PCI Option ROM ローダーで処理され、UEFI イメージは PE32 ローダーで処理されます(圧縮に対応)。 各イメージの情報は、右クリックメニューの Get Info を選択して表示できます。

ファームウェアイメージローダー

サポートされているファームウェアイメージを Ghidra プロジェクトに追加します。ファームウェアイメージローダーは、 Flash Descriptor を持つ Intel イメージ、FMAP/CBFS レイアウトを持つ coreboot イメージ、および UEFI ファームウェアボリュームをサポートします。File system インポートモードを使用すると、 指定されたファームウェアイメージ内に埋め込まれたファイルを表示できます。

一部の UEFI ファームウェアイメージは、フリーフォーム/生ファイル(またはフリーフォーム/生 FFS セクション)内に ネストされたファームウェアボリュームを格納している場合があることに注意してください。このようなファイルは、 指定されたフリーフォーム/生ファイルの右クリックメニューで Open File System を選択することで、 ファームウェアボリュームとしてインポートできます。ネストされたファームウェアボリュームが見つからない場合は、 エラーメッセージが表示されます(No file system provider for...)。

UEFI ヘルパースクリプト

ヘルパースクリプトはプラグインの ghidra_scripts ディレクトリに含まれており、Ghidra のスクリプトディレクトリの リストに自動的に追加されるはずです。

Script Manager ウィンドウ(Window -> Script Manager からアクセス)で UEFIHelper.java を選択して、 UEFI ヘルパースクリプトを実行します。

UEFI データ型ライブラリを変更するには、必要に応じて data/gen_prf.sh の PRF テンプレートを変更し、 新しい PRF ファイルを生成します。生成された PRF ファイルを File -> Parse C Source で開きます。 Parse to File... を選択して更新されたデータ型ライブラリをビルドします。data 内の元のデータ型ライブラリを 上書きし、プラグインを再ビルドします。

関連プロジェクト

UEFI リバースエンジニアリングに関連する興味深いプロジェクトをいくつか紹介します:

  • efiXplorer - UEFI ファームウェア解析とリバースエンジニアリング自動化のための IDA プラグイン
  • Ghidra-EFI-Byte-Code-Processor - Ghidra 用の EFI Byte Code (EBC) プロセッサモジュール

ライセンス

Apache 2.0、ただし一部例外あり:

  • src/efidecompress/c/efidecompress.c: BSD

クレジット

src/efidecompress/c/efidecompress.c は、uefi-firmware-parser の Decompress.c を軽微に変更したものです (それ自体は EDK2 BaseTools のオリジナルから派生)。

src/main/java/firmware/ifd の IFD FS ローダーは、UEFITool のパーサーを参考にしました。

data/guids.csv の GUID データベースは UEFITool から取得しています。

data/uefi_*.gdt の UEFI データ型ライブラリは data/gen_prf.sh で生成されました。これは wrffrz による Ghidra プルリクエストの UEFI パーサー定義に部分的に基づいています。これらのデータ型ライブラリは EDK2 MdePkg のヘッダーを使用しています。

UEFI ヘルパースクリプトの一部は xerpi による GhidraVitaLoader を参考にしました。

ツールをダウンロード