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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ida-efiutils — IDA Pro用のスクリプト集で、EFIバイナリのリバースエンジニアリングを支援します。 | Kitploit
ツール/GitHubGitHub/snare/ida-efiutils
組み込みシステムセキュリティリバースエンジニアリングハードウェアとIoTセキュリティバイナリ解析ファームウェア解析
GitHubsnare/ida-efiutils

ida-efiutils

IDA Pro用のスクリプト集で、EFIバイナリのリバースエンジニアリングを支援します。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

IDA Pro用EFIスクリプト

EFI実行可能ファイルのリバースエンジニアリングを支援するIDAスクリプト集です。

このパッケージには以下のファイルが含まれています:

  1. efiutils.py - いくつかのヘルパー関数を含むIDAPythonモジュール

  2. efiguids.py - EFIプロトコル用の既知のGUIDコレクション

  3. efiguids_ami.py - AMI BIOSで使用されるプロトコル用の既知のGUIDコレクション

  4. behemoth.h - EFI用の型定義と構造体定義のコレクションを含む巨大なヘッダー

  5. structs.idc - いくつかの構造体定義を含むIDCスクリプト(behemoth.hに置き換えられました)

  6. te_image.bt - TEバイナリイメージ用の010 Editorテンプレート

  7. te_loader.py - TEバイナリイメージ用のIDA Proローダースクリプト

これは私のIDAスクリプト作成の初めての試みですので、車輪の再発明やおかしなことをしている場合はお許しください。お知らせいただければ幸いです。

関数

主な便利な関数は以下に説明されています。他の関数の詳細については、コードとdocstringを参照してください。

rename_tables()

バイナリの最初のエントリポイントを見つけ、エントリポイント関数に渡されたパラメータを追跡し、主要なEFIテーブルが格納されているグローバル変数の名前を変更しようとします。以下の名前変更操作が実行されます:

  1. ImageHandleが格納されるグローバルはgImageHandleに名前変更されます。

  2. SystemTableが格納されるグローバルはgSystemTableに名前変更されます。

  3. SystemTable->BootServicesが格納されるグローバルはgBootServicesに名前変更されます。

  4. SystemTable->RuntimeServicesが格納されるグローバルはgRuntimeServicesに名前変更されます。

ほとんどの実行可能ファイルはエントリポイントまたはエントリポイントから呼び出される関数でテーブル参照をコピーするため、呼び出し命令は1レベルの深さまでしか追跡されません。必要に応じてMAX_STACK_DEPTHを変更してください。

update_structs()

上記で名前変更されたテーブルへのクロスリファレンスを見つけ、それらの名前を適切な構造体からの構造体オフセットに更新します。rename_tables()が失敗した場合は、これが正しく機能するように上記のように手動で名前を変更する必要があります。

例:

root@kitploit:~
    mov     rax, cs:qword_whatever
    call    qword ptr [rax+150h]

次のようになります:

root@kitploit:~
    mov     rax, cs:gBootServices
    call    [rax+EFI_BOOT_SERVICES.UninstallMultipleProtocolInterfaces]

rename_guids()

データセグメント内のGUIDを見つけて名前を変更します。470個のプロトコルGUIDがTianoCoreソースから抽出され、独自のApple(および他のベンダー)GUIDは検出された際に追加されます。

go()

上記のすべてを実行する便利なメソッドです。

使用方法

  1. IDA ProでEFIバイナリをロードします

  2. behemoth.hをインポートして必要なデータ構造を定義します

  3. ローカル型から構造体をIDBに追加します

  4. efiutils.pyを実行してpythonのパスに追加します(または他の方法で行います)

  5. コード/docstringを確認しますが、おそらく次のようにします:

    root@kitploit:~
     import efiutils; efiutils.go()
    

te_loader.py TEイメージローダーを使用するには、他のローダーと同様にインストールします。OS Xでは、idaq.app/Contents/MacOS/loaders/内のloadersフォルダにコピーまたはシンボリックリンクすることで行います。

ツールをダウンロード