
Intel, AMD, VIA & Freescale Mikrocode-Extraktionstool
Intel, AMD, VIA & Freescale Mikrocode-Extraktionstool
Intel, AMD, VIA & Freescale CPU Microcode Repositories

MC Extractor ist ein Werkzeug, das Intel-, AMD-, VIA- und Freescale-Prozessor-Mikrocode-Binärdateien analysiert. Es kann von Endbenutzern verwendet werden, die nach allen relevanten Mikrocode-Informationen wie CPUID, Plattform, Version, Datum, Freigabe, Größe, Prüfsumme usw. suchen. Es ist in der Lage, Intel-Mikrocode-Container (dat, inc, h, txt) in Binärbilder für die BIOS-Integration zu konvertieren, neue/unbekannte Mikrocodes zu erkennen, den Mikrocode-Zustand zu überprüfen, den Aktualisiert/Veraltet-Status und mehr. MC Extractor kann auch als Forschungsanalysewerkzeug mit mehreren Strukturen verwendet werden, die unter anderem das vollständige Parsen und die Informationsanzeige aller dokumentierten oder nicht dokumentierten Mikrocode-Header ermöglichen. Darüber hinaus ist MC Extractor mit Hilfe seiner umfangreichen Datenbank in der Lage, alle unterstützten Mikrocodes eindeutig zu kategorisieren und nach Mikrocodes zu suchen, die noch nicht in den Mikrocode-Repositories gespeichert wurden.
MC Extractor ermöglicht Endbenutzern und/oder Forschern, neue Mikrocode-Versionen schnell zu extrahieren, anzuzeigen, zu konvertieren und zu melden, ohne spezielle Werkzeuge oder Hex-Editoren zu verwenden. Um dies effektiv zu tun, musste eine Datenbank aufgebaut werden. Die Intel, AMD, VIA & Freescale CPU Microcode Repositories ist eine Sammlung aller aktuellsten Produktions-Intel-, AMD- und VIA-CPU-Mikrocodes, die wir gefunden haben. Ihre Existenz ist sehr wichtig für MC Extractor, da sie es uns ermöglicht, weiterhin Forschung zu betreiben, neue Mikrocode-Typen zu finden, Versionen auf Ähnlichkeiten zu vergleichen, nach aktualisierten Binärdateien zu suchen usw. Mit MC Extractor wird eine Datei namens MCE.db ausgeliefert, die für den Programmablauf erforderlich ist. Sie enthält Einträge für alle Mikrocode-Binärdateien, die uns zur Verfügung stehen. Dies dient hauptsächlich zwei Zwecken: a) Überprüfen, ob der importierte Mikrocode auf dem neuesten Stand ist, und b) Helfen, neue Mikrocode-Versionen schneller zu finden, indem sie im Intel, AMD, VIA & Freescale CPU Microcode Repositories Discussion Thread gemeldet werden.
MC Extractor basierte ursprünglich auf einem Teil von Lordkags UEFIStrip-Werkzeug, daher danke ich ihm vor allem für all seine Arbeit, die dieses Projekt inspiriert hat. Unter anderem sind großartige Orte, um etwas über Mikrocodes zu lernen, Intels eigener Download-Bereich und offizielle Dokumentation, Intel Microcode Patch Authentication, Coreboot (a,b,c), Microparse von Dominic Chen, Ben Hawkes' Notes and Research, Richard A. Burtons Microdecode, AIDA64 CPUID dumps, Sandpile CPUID, Free Electrons (a, b), Freescale (a, b, c, d) und viele weitere, die ich vielleicht vergessen habe, aber ansonsten hier gewesen wären.
Es gibt zwei Möglichkeiten, MC Extractor zu verwenden, das MCE-Skript und die Eingabeaufforderung. Das MCE-Skript ermöglicht es Ihnen, eine oder mehrere Firmware-Dateien einzugeben oder per Drag & Drop hinzuzufügen und einzeln anzuzeigen oder ganze Verzeichnisse rekursiv zu durchsuchen. Um MC Extractor manuell zu verwenden, kann eine Eingabeaufforderung mit dem Parameter -skip verwendet werden.
Um MC Extractor zu verwenden, wählen Sie eine oder mehrere Dateien aus und geben Sie sie ein oder ziehen Sie sie per Drag & Drop auf sein Skript. Sie können auch bestimmte optionale Parameter eingeben, entweder indem Sie MCE direkt ausführen oder indem Sie zuerst eine oder mehrere Dateien darauf ablegen. Beachten Sie, dass aufgrund von Betriebssystembeschränkungen eine Obergrenze dafür besteht, wie viele Dateien gleichzeitig abgelegt werden können. Wenn letzteres ein Problem darstellt, können Sie jederzeit den Parameter -mass verwenden, um ganze Verzeichnisse rekursiv zu durchsuchen, wie unten erläutert.
Es gibt verschiedene Parameter, die das Standardverhalten von MC Extractor erweitern oder ändern:
MC Extractor kann sein eigenes Mikrocode-Blob-Format (MCB) erstellen, das mehrere Intel- oder AMD-Mikrocode-Binärdateien in einer Datei zusammenfasst. Dies ermöglicht hauptsächlich die schnelle und automatische Extraktion der neuesten kompatiblen Mikrocode-Binärdatei basierend auf der entsprechenden Benutzereingabe. Der MCB besteht aus einem identifizierbaren Header und einer Eintrags-Nachschlagetabelle (LUT), gefolgt von den eigentlichen Mikrocode-Binärdaten. Der Header enthält Informationen wie Mikrocode-Anbieter (Intel oder AMD), Anzahl der Mikrocodes, MCE DB-Revision und eine Prüfsumme, die den gesamten Blob abdeckt. Die LUT-Einträge enthalten Details für jede Mikrocode-Binärdatei wie CPUID, Plattform, Revision, Datum, Größe, Prüfsumme und Blob-Offset.

Um einen MCE-Mikrocode-Blob (MCB.bin) zu erstellen, geben Sie die gewünschten Intel- oder AMD-Mikrocode-Binärdateien ein und verwenden Sie den Parameter -blob. Sie können Ihre eigenen Mikrocodes verwenden oder die aktuellsten Produktions-Intel- und AMD-Mikrocodes im Intel, AMD, VIA & Freescale CPU Microcodes Repository finden. Um den neuesten Mikrocode aus einem MCB zu extrahieren, geben Sie eine einzelne Mikrocode-Binärdatei ein und verwenden Sie die Parameter -blob -search. MC Extractor wird den erkannten MCB validieren, prüfen, ob der Mikrocode bereits aktuell ist, bevor der neueste extrahiert wird, und entsprechend benachrichtigen.
Während des Betriebs kann MC Extractor auf Probleme stoßen, die Hinweise, Warnungen und/oder Fehler auslösen können. Hinweise (gelb/grüne Farbe) liefern nützliche Informationen über eine Eigenschaft dieser bestimmten Firmware. Warnungen (lila Farbe) machen den Benutzer auf mögliche Probleme aufmerksam, die Systeminstabilität verursachen können. Fehler (rote Farbe) werden angezeigt, wenn etwas Unerwartetes oder Problematisches auftritt.
MC Extractor besteht aus zwei Dateien: dem Skript (MCE.py) und seiner Datenbank (MCE.db). Laden Sie die neueste Version vom Tab Releases herunter. Der Titel sollte mit "MC Extractor vX.Y.Z" beginnen. Möglicherweise müssen Sie etwas nach unten scrollen, wenn oben DB-Versionen aufgeführt sind. Letztere können verwendet werden, um die veraltete DB zu aktualisieren, die mit der neuesten "MC Extractor vX.Y.Z"-Version gebündelt war. Der Titel sollte mit "DB rXY" beginnen.
MC Extractor sollte auf allen Windows-, Linux- oder macOS-Betriebssystemen funktionieren, die Python >= 3.7 unterstützen.
Um MC Extractor auszuführen, müssen Sie Python >= 3.7 installieren, gefolgt von diesen Drittanbieter-Python-Modulen:
pip3 install colorama pltable
Hinweis: Einige Bilder sind möglicherweise veraltet und zeigen ältere MC Extractor-Versionen.


















