
Intel, AMD, VIA & Freescale マイクロコード抽出ツール
Intel、AMD、VIA & Freescale マイクロコード抽出ツール
Intel、AMD、VIA & Freescale CPU マイクロコードリポジトリ

MC Extractor は、Intel、AMD、VIA、Freescale のプロセッサマイクロコードバイナリを解析するツールです。エンドユーザーが CPUID、プラットフォーム、バージョン、日付、リリース、サイズ、チェックサムなどの関連するマイクロコード情報をすべて検索するために使用できます。Intel マイクロコードコンテナ (dat、inc、h、txt) を BIOS 統合用のバイナリイメージに変換したり、新規/未知のマイクロコードを検出したり、マイクロコードの健全性、更新済み/未更新ステータスなどを確認したりできます。MC Extractor は、複数の構造を備えた研究分析ツールとしても使用でき、文書化されたまたはされていないすべてのマイクロコードヘッダーの完全な解析と情報表示が可能です。さらに、広範なデータベースの助けを借りて、MC Extractor はサポートされているすべてのマイクロコードを一意に分類し、まだマイクロコードリポジトリに保存されていないマイクロコードをチェックすることができます。
MC Extractor は、エンドユーザーや研究者が特別なツールや Hex エディタを使わずに、新しいマイクロコードバージョンを迅速に抽出、表示、変換、報告することを可能にします。これを効果的に行うために、データベースを構築する必要がありました。Intel、AMD、VIA & Freescale CPU マイクロコードリポジトリ は、私たちが見つけたすべての最新の Production Intel、AMD、VIA CPU マイクロコードのコレクションです。その存在は MC Extractor にとって非常に重要であり、研究を継続し、新しいタイプのマイクロコードを発見し、リリースの類似性を比較し、更新されたバイナリをチェックすることを可能にします。MC Extractor には MCE.db というファイルがバンドルされており、プログラムの実行に必要です。これには、利用可能なすべてのマイクロコードバイナリのエントリが含まれています。これにより、主に2つのアクションが可能になります: a) インポートされたマイクロコードが最新であるかどうかを確認する、b) Intel、AMD、VIA & Freescale CPU マイクロコードリポジトリディスカッション スレッドで報告することで、新しいマイクロコードリリースをより早く見つけるのに役立てる。
MC Extractor は当初、Lordkag の UEFIStrip ツールの一部に基づいていました。まず第一に、このプロジェクトにインスピレーションを与えた彼のすべての仕事に感謝します。マイクロコードについて学ぶための優れた情報源としては、Intel 自身のダウンロードサイトと公式ドキュメント、Intel Microcode Patch Authentication、Coreboot (a、b、c)、Dominic Chen による Microparse、Ben Hawkes の Notes and Research、Richard A Burton の Microdecode、AIDA64 CPUID ダンプ、Sandpile CPUID、Free Electrons (a、b)、Freescale (a、b、c、d) など、他にも忘れているかもしれない多くの情報源がありますが、本来ならここに挙げられていたでしょう。
MC Extractor の使い方には2つの方法があります: MCE スクリプトとコマンドプロンプトです。MCE スクリプトを使用すると、1つ以上のファームウェアを入力またはドラッグ&ドロップして、それらを1つずつ表示したり、ディレクトリ全体を再帰的にスキャンしたりできます。手動で MC Extractor を使用するには、-skip をパラメータとしてコマンドプロンプトを使用できます。
MC Extractor を使用するには、1つまたは複数のファイルを選択し、スクリプトに入力またはドラッグ&ドロップします。また、MCE を直接実行するか、最初に1つ以上のファイルをドロップしてから、特定のオプションパラメータを入力することもできます。オペレーティングシステムの制限により、一度にドロップできるファイル数には制限があることに注意してください。後者が問題の場合は、後述するように -mass パラメータを使用してディレクトリ全体を再帰的にスキャンすることができます。
MC Extractor のデフォルトの動作を強化または変更するさまざまなパラメータがあります:
MC Extractor は、複数の Intel または AMD マイクロコードバイナリを1つのファイルに結合する独自の Microcode Blob (MCB) フォーマットを構築できます。これにより、同等のユーザーマイクロコードバイナリ入力に基づいて、最新の互換性のあるマイクロコードバイナリを迅速かつ自動的に抽出できます。MCB は、識別可能なヘッダーとエントリルックアップテーブル (LUT) で構成され、その後に実際のマイクロコードバイナリデータが続きます。ヘッダーには、マイクロコードベンダー(Intel または AMD)、マイクロコード数、MCE DB リビジョン、ブロブ全体をカバーするチェックサムなどの情報が含まれます。LUT エントリには、各マイクロコードバイナリの CPUID、プラットフォーム、リビジョン、日付、サイズ、チェックサム、ブロブオフセットなどの詳細が含まれます。

MCE マイクロコードブロブ (MCB.bin) を構築するには、目的の Intel または AMD マイクロコードバイナリを入力し、-blob パラメータを使用します。独自のマイクロコードを使用するか、Intel、AMD、VIA & Freescale CPU マイクロコード リポジトリにある最新の Production Intel および AMD マイクロコードを見つけることができます。MCB から最新のマイクロコードを抽出するには、単一のマイクロコードバイナリを入力し、-blob -search パラメータを使用します。MC Extractor は検出された MCB を検証し、マイクロコードが既に最新であるかどうかを確認してから、最新のものを抽出し、それに応じて通知します。
動作中、MC Extractor はメモ、警告、および/またはエラーをトリガーする可能性のある問題に遭遇することがあります。メモ(黄/緑色)は、この特定のファームウェアの特性に関する有用な情報を提供します。警告(紫色)は、システムの不安定性を引き起こす可能性のある問題をユーザーに通知します。エラー(赤色)は、予期しない問題や問題が発生した場合に表示されます。
MC Extractor は、スクリプト (MCE.py) とそのデータベース (MCE.db) の2つのファイルで構成されています。最新バージョンは Releases タブからダウンロードしてください。タイトルは 'MC Extractor vX.Y.Z' で始まります。上部に DB リリースがある場合は、少しスクロールダウンする必要があるかもしれません。後者は、最新の 'MC Extractor vX.Y.Z' リリースにバンドルされている古い DB を更新するために使用でき、タイトルは 'DB rXY' で始まります。
MC Extractor は、Python >= 3.7 をサポートするすべての Windows、Linux、macOS オペレーティングシステムで動作するはずです。
MC Extractor を実行するには、Python >= 3.7 をインストールし、次に以下のサードパーティ Python モジュールをインストールする必要があります:
pip3 install colorama pltable
注: 一部の画像は古く、以前のバージョンの MC Extractor を示している場合があります。


















