
Outil d'extraction de microcode pour Intel, AMD, VIA et Freescale
Intel, AMD, VIA & Freescale Outil d'extraction de microcode
Intel, AMD, VIA & Freescale CPU Microcode Repositories

MC Extractor est un outil qui analyse les binaires de microcode des processeurs Intel, AMD, VIA et Freescale. Il peut être utilisé par les utilisateurs finaux qui recherchent toutes les informations pertinentes sur le microcode telles que CPUID, Plateforme, Version, Date, Révision, Taille, Checksum, etc. Il est capable de convertir les conteneurs de microcode Intel (dat, inc, h, txt) en images binaires pour l'intégration BIOS, de détecter les microcodes nouveaux/inconnus, de vérifier la santé du microcode, son statut Mis à jour/Obsolète et plus encore. MC Extractor peut également être utilisé comme outil d'analyse de recherche avec plusieurs structures qui permettent, entre autres, l'analyse complète et l'affichage des informations de tous les en-têtes de microcode documentés ou non. De plus, grâce à sa vaste base de données, MC Extractor est capable de catégoriser de manière unique tous les microcodes pris en charge et de vérifier les microcodes qui n'ont pas encore été stockés dans les dépôts de microcode.
MC Extractor permet aux utilisateurs finaux et/ou aux chercheurs d'extraire, visualiser, convertir et signaler rapidement de nouvelles versions de microcode sans utiliser d'outils spéciaux ou d'éditeurs hexadécimaux. Pour ce faire efficacement, une base de données a dû être construite. Les dépôts de microcode CPU Intel, AMD, VIA & Freescale sont une collection de tous les derniers microcodes de production Intel, AMD et VIA que nous avons trouvés. Leur existence est très importante pour MC Extractor car elle nous permet de continuer la recherche, de trouver de nouveaux types de microcode, de comparer les versions pour les similitudes, de vérifier les binaires mis à jour, etc. Un fichier appelé MCE.db est fourni avec MC Extractor, nécessaire au fonctionnement du programme. Il contient les entrées de tous les binaires de microcode qui nous sont disponibles. Cela permet principalement deux actions : a) Vérifier si le microcode importé est à jour et b) Aider à trouver plus rapidement les nouvelles versions de microcode en les signalant dans le fil de discussion dépôts de microcode CPU Intel, AMD, VIA & Freescale.
MC Extractor était initialement basé sur une fraction de l'outil UEFIStrip de Lordkag, donc avant tout, je le remercie pour tout son travail qui a inspiré ce projet. Entre autres, d'excellents endroits pour en savoir plus sur les microcodes sont le site de téléchargement et la documentation officielle d'Intel, Authentification des correctifs de microcode Intel, Coreboot (a,b,c), Microparse par Dominic Chen, Notes et recherche de Ben Hawkes, Microdecode de Richard A Burton, Dumps CPUID AIDA64, CPUID Sandpile, Free Electrons (a, b), Freescale (a, b, c, d) et bien d'autres que j'aurais pu oublier mais qui seraient autrement ici.
Il existe deux façons d'utiliser MC Extractor : le script MCE et l'invite de commande. Le script MCE vous permet de saisir ou de glisser-déposer un ou plusieurs firmwares et de les visualiser un par un ou d'analyser récursivement des répertoires entiers. Pour utiliser manuellement MC Extractor, une invite de commande peut être utilisée avec -skip comme paramètre.
Pour utiliser MC Extractor, sélectionnez un ou plusieurs fichiers et saisissez-les ou glissez-déposez-les sur son script. Vous pouvez également saisir certains paramètres optionnels soit en exécutant MCE directement, soit en déposant d'abord un ou plusieurs fichiers dessus. Gardez à l'esprit qu'en raison des limitations du système d'exploitation, il y a une limite sur le nombre de fichiers pouvant être déposés à la fois. Si cela pose problème, vous pouvez toujours utiliser le paramètre -mass pour analyser récursivement des répertoires entiers, comme expliqué ci-dessous.
Il existe divers paramètres qui améliorent ou modifient le comportement par défaut de MC Extractor :
MC Extractor peut construire son propre format de Blob de Microcode (MCB), qui combine plusieurs binaires de microcode Intel ou AMD en un seul fichier. Cela permet principalement une extraction rapide et automatique du dernier binaire de microcode compatible en fonction du binaire de microcode utilisateur équivalent saisi. Le MCB se compose d'un en-tête identifiable et d'une table de correspondance d'entrées (LUT) suivis des données binaires du microcode proprement dites. L'en-tête inclut des informations telles que le fournisseur de microcode (Intel ou AMD), le nombre de microcodes, la révision de la base de données MCE et une somme de contrôle couvrant l'ensemble du blob. Les entrées de la LUT incluent des détails pour chaque binaire de microcode tels que CPUID, Plateforme, Révision, Date, Taille, Somme de contrôle et décalage dans le blob.

Pour construire un blob de microcode MCE (MCB.bin), saisissez les binaires de microcode Intel ou AMD souhaités et utilisez le paramètre -blob. Vous pouvez utiliser vos propres microcodes ou trouver les derniers microcodes de production Intel et AMD dans le dépôt Intel, AMD, VIA & Freescale CPU Microcodes. Pour extraire le dernier microcode d'un MCB, saisissez un seul binaire de microcode et utilisez les paramètres -blob -search. MC Extractor validera le MCB détecté, vérifiera si le microcode est déjà à jour avant d'extraire le dernier et notifiera en conséquence.
Pendant le fonctionnement, MC Extractor peut rencontrer des problèmes qui peuvent déclencher des notes, des avertissements et/ou des erreurs. Les notes (couleur jaune/vert) fournissent des informations utiles sur une caractéristique de ce firmware particulier. Les avertissements (couleur violette) informent l'utilisateur de problèmes possibles pouvant causer une instabilité du système. Les erreurs (couleur rouge) sont affichées lorsque quelque chose d'inattendu ou de problématique est rencontré.
MC Extractor se compose de deux fichiers, le script (MCE.py) et sa base de données (MCE.db). Téléchargez la dernière version depuis l'onglet Releases, le titre devrait commencer par "MC Extractor vX.Y.Z". Vous devrez peut-être faire défiler un peu vers le bas s'il y a des versions de base de données en haut. Ces dernières peuvent être utilisées pour mettre à jour la base de données obsolète fournie avec la dernière version "MC Extractor vX.Y.Z", le titre devrait commencer par "DB rXY".
MC Extractor devrait fonctionner sur tous les systèmes d'exploitation Windows, Linux ou macOS qui prennent en charge Python >= 3.7.
Pour exécuter MC Extractor, vous devez installer Python >= 3.7, suivi de ces modules Python tiers :
pip3 install colorama pltable
Remarque : Certaines images peuvent être obsolètes et représenter des versions antérieures de MC Extractor.


















