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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
uefi-firmware-parser — BIOS/Intel ME/UEFIファームウェア関連の構造(ボリューム、ファイルシステム、ファイルなど)を解析します。 | Kitploit
ツール/GitHubGitHub/theopolis/uefi-firmware-parser
組み込みシステムセキュリティリバースエンジニアリングハードウェアセキュリティバイナリ解析ファームウェア解析
GitHubtheopolis/uefi-firmware-parser

uefi-firmware-parser

BIOS/Intel ME/UEFIファームウェア関連の構造(ボリューム、ファイルシステム、ファイルなど)を解析します。

リポジトリを見る
91918743ヶ月前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

UEFIファームウェアパーサー

.. image:: https://travis-ci.org/theopolis/uefi-firmware-parser.svg?branch=master :target: https://travis-ci.org/theopolis/uefi-firmware-parser

UEFIファームウェアパーサーは、UEFIファームウェアボリュームの解析、抽出、再作成を行うためのシンプルなモジュールとスクリプト群です。 BIOS、OptionROM、Intel ME、その他のフォーマット用の解析モジュールも含まれています。 解析チュートリアルにはサンプルスクリプトをご利用ください。

インストール

このモジュールはPyPiから uefi_firmware <https://pypi.python.org/pypi/uefi_firmware>_ として入手可能です。

::

$ sudo pip install uefi_firmware

Githubからインストールするには、このリポジトリをチェックアウトして以下を使用してください:

::

$ sudo python ./setup.py install

必要条件

  • Python開発用ヘッダー(通常は python-dev パッケージに含まれます)
  • 圧縮/解凍機能はPythonヘッダーと gcc を使用します。

使い方

ファームウェアの検出や解析を行う最も簡単な方法は、AutoParser クラスを使用することです。

::

import uefi_firmware with open('/path/to/firmware.rom', 'r') as fh: file_content = fh.read() parser = uefi_firmware.AutoParser(file_content) if parser.type() != 'unknown': firmware = parser.parse() firmware.showinfo()

uefi、pfs、me、flash パッケージ内には、コンストラクタでファイル内容を受け取るクラスがいくつかあります。すべてのケースで以下の抽象メソッドが実装されています:

  • process() は解析を行い、True または False を返します
  • showinfo() は構造に関する情報の階層を表示します
  • dump() は階層を走査し、各要素をファイルに書き出します

スクリプト

Pythonスクリプト uefi-firmware-parser がインストールされます

::

$ uefi-firmware-parser -h usage: uefi-firmware-parser [-h] [-b] [--superbrute] [-q] [-o OUTPUT] [-O] [-c] [-e] [-g GENERATE] [--test] file [file ...]

Parse, and optionally output, details and data on UEFI-related firmware.

positional arguments: file The file(s) to work on

optional arguments: -h, --help show this help message and exit -b, --brute The input is a blob and may contain FV headers. --superbrute The input is a blob and may contain any sort of firmware object -q, --quiet Do not show info. -o OUTPUT, --output OUTPUT Dump firmware objects to this folder. -O, --outputfolder Dump firmware objects to a folder based on filename ${FILENAME}_output/ -c, --echo Echo the filename before parsing or extracting. -e, --extract Extract all files/sections/volumes. -g GENERATE, --generate GENERATE Generate a FDF, implies extraction (volumes only) --test Test file parsing, output name/success.

ファイルまたはファイルのディレクトリをテストするには:

::

$ uefi-firmware-parser --test ~/firmware/* ~/firmware/970E32_1.40: UEFIFirmwareVolume ~/firmware/CO5975P.BIO: EFICapsule ~/firmware/me-03.obj: IntelME ~/firmware/O990-A03.exe: None ~/firmware/O990-A03.exe.hdr: DellPFS

大量のファームウェアファイルを解析・抽出する必要がある場合は、-O オプションを確認してください。ファイルごとに自動的に出力フォルダを生成します。シェルで内部を解析・検索する場合、--echo オプションを使用すると、解析前に入力ファイル名が表示されます。

ファームウェアタイプチェッカーは、ファイルを最も適切に解析する方法を決定します。--test オプションでタイプが特定できない場合、または unknown と表示される場合は、-b または --superbrute オプションを試してください。後者はバイト単位でタイプチェックを行います。

::

$ uefi-firmware-parser --test ~/firmware/970E32_1.40 ~/firmware/970E32_1.40: unknown $ uefi-firmware-parser --superbrute ~/firmware/970E32_1.40 [...]

特徴

  • UEFIファームウェアボリューム、カプセル、ファイルシステム、ファイル、セクションの解析
  • Intel PCHフラッシュ記述子
  • Intel MEモジュールの解析(ME、TXEなど)
  • Dell PFS(HDR)アップデートの解析
  • Tiano/EFI、およびネイティブLZMA(7z)の [圧縮/解凍]
  • UEFIファームウェアボリュームオブジェクト階層の完全表示
  • 解析された入力ボリュームを使用したファームウェア記述子の[再]生成
  • ファームウェアファイルセクションの注入

GUID注入

注入またはGUID置換(まだ追加/削除はできません)は、UEFIファームウェアファイル内のセクション、またはファームウェアファイルシステム内のUEFIファームウェアファイルに対して実行できます。

::

$ python ./scripts/fv_injector.py -h usage: fv_injector.py [-h] [-c] [-p] [-f] [--guid GUID] --injection INJECTION [-o OUTPUT] file

Search a file for UEFI firmware volumes, parse and output.

positional arguments: file The file to work on

optional arguments: -h, --help show this help message and exit -c, --capsule The input file is a firmware capsule. -p, --pfs The input file is a Dell PFS. -f, --ff Inject payload into firmware file. --guid GUID GUID to replace (inject). --injection INJECTION Pre-generated EFI file to inject. -o OUTPUT, --output OUTPUT Name of the output file.

注:ファームウェアファイルに注入する場合、どのセクションを置換するかユーザーにプロンプトが表示されます。現時点ではスクリプト化できません。

IDA Pythonサポート

Snareのプラグインを使用してIDA Pythonにインポートするための追加のGUIDラベルを生成するスクリプトが含まれています。-g LABEL オプションを使用すると、スクリプトはPython辞書形式の出力を生成します。このプロジェクトは、人気のあるベンダーGUIDを自動的に最新の状態に保つよう努めます。

::

$ python ./scripts/uefi_guids.py -h usage: uefi_guids.py [-h] [-c] [-b] [-d] [-g GENERATE] [-u] file

Output GUIDs for files, optionally write GUID structure file.

positional arguments: file The file to work on

optional arguments: -h, --help show this help message and exit -c, --capsule The input file is a firmware capsule, do not search. -b, --brute The input file is a blob, search for firmware volume headers. -d, --flash The input file is a flash descriptor. -g GENERATE, --generate GENERATE Generate a behemoth-style GUID output. -u, --unknowns When generating also print unknowns.

サポート対象ベンダー

このモジュールは以下のベンダーからのBIOS/UEFI/ファームウェアアップデートでテストされています。すべての製品のすべてのアップデートが解析できるわけではなく、一部のものは事前の解凍や配布アップデートメカニズム(通常はPE)からの抽出が必要な場合があります。

  • ASRock
  • Dell
  • Gigabyte
  • Intel
  • Lenovo
  • HP
  • MSI
  • VMware
  • Apple
  • Qualcomm
ツールをダウンロード