
Intel, AMD, VIA & Freescale инструмент извлечения микрокода
Инструмент извлечения микрокода Intel, AMD, VIA и Freescale
Репозитории микрокода процессоров Intel, AMD, VIA и Freescale

MC Extractor — это инструмент, который разбирает двоичные файлы микрокода процессоров Intel, AMD, VIA и Freescale. Он может использоваться конечными пользователями, которые ищут всю релевантную информацию о микрокоде, такую как CPUID, Platform, Version, Date, Release, Size, Checksum и т.д. Он способен конвертировать контейнеры микрокода Intel (dat, inc, h, txt) в двоичные образы для интеграции в BIOS, обнаруживать новый/неизвестный микрокод, проверять здоровье микрокода, статус «Обновлено/Устарело» и многое другое. MC Extractor также может использоваться как инструмент исследовательского анализа с множеством структур, которые позволяют, среди прочего, полный разбор и отображение информации обо всех документированных или нет заголовках микрокода. Более того, с помощью своей обширной базы данных MC Extractor способен уникальным образом категоризировать все поддерживаемые микрокоды, а также проверять, какие микрокоды ещё не были сохранены в репозиториях микрокода.
MC Extractor позволяет конечным пользователям и/или исследователям быстро извлекать, просматривать, конвертировать и сообщать о новых версиях микрокода без использования специальных инструментов или Hex-редакторов. Для эффективного выполнения этой задачи потребовалось создать базу данных. Репозитории микрокода процессоров Intel, AMD, VIA и Freescale — это собрание всех последних производственных микрокодов Intel, AMD и VIA, которые мы нашли. Его существование очень важно для MC Extractor, так как позволяет нам продолжать исследования, находить новые типы микрокода, сравнивать версии на предмет сходства, проверять обновлённые двоичные файлы и т.д. Вместе с MC Extractor поставляется файл MCE.db, который необходим для работы программы. Он содержит записи для всех двоичных файлов микрокода, доступных нам. Это обеспечивает в основном два действия: a) Проверка, является ли импортированный микрокод актуальным, и b) Помощь в более быстром обнаружении новых версий микрокода путём сообщения о них в ветке Обсуждение репозиториев микрокода процессоров Intel, AMD, VIA и Freescale.
MC Extractor изначально был основан на части инструмента UEFIStrip от Lordkag, поэтому в первую очередь я благодарю его за всю его работу, которая вдохновила этот проект. Среди прочего, отличными местами для изучения микрокодов являются собственный сайт загрузки Intel и официальная документация, Intel Microcode Patch Authentication, Coreboot (a,b,c), Microparse от Dominic Chen, Заметки и исследования от Ben Hawkes, Microdecode от Richard A Burton, Дампы AIDA64 CPUID, Sandpile CPUID, Free Electrons (a, b), Freescale (a, b, c, d) и многие другие, которых я мог забыть, но они были бы здесь в противном случае.
Есть два способа использования MC Extractor: скрипт MCE и командная строка. Скрипт MCE позволяет ввести или перетащить одну или несколько прошивок и просматривать их одну за другой или рекурсивно сканировать целые каталоги. Для ручного использования MC Extractor можно использовать командную строку с параметром -skip.
Чтобы использовать MC Extractor, выберите один или несколько файлов и введите их или перетащите в его скрипт. Вы также можете ввести определённые необязательные параметры, либо запустив MCE напрямую, либо сначала перетащив в него один или несколько файлов. Имейте в виду, что из-за ограничений операционной системы существует ограничение на количество файлов, которые можно перетащить за раз. Если последнее является проблемой, вы всегда можете использовать параметр -mass для рекурсивного сканирования целых каталогов, как описано ниже.
Существуют различные параметры, которые улучшают или изменяют стандартное поведение MC Extractor:
MC Extractor может создавать свой собственный формат блоба микрокода (MCB), который объединяет несколько двоичных файлов микрокода Intel или AMD в один файл. Это в основном позволяет быстро и автоматически извлечь последнюю совместимую двоичную версию микрокода на основе соответствующего входного пользовательского двоичного файла микрокода. MCB состоит из идентифицируемого заголовка и таблицы поиска записей (LUT), за которыми следуют фактические данные двоичного микрокода. Заголовок включает такую информацию, как производитель микрокода (Intel или AMD), количество микрокодов, версия БД MCE и контрольная сумма, покрывающая весь блоб. Записи LUT содержат сведения для каждого двоичного файла микрокода, такие как CPUID, Platform, Revision, Date, Size, Checksum и смещение в блобе.

Чтобы создать блоб микрокода MCE (MCB.bin), вставьте нужные двоичные файлы микрокода Intel или AMD и используйте параметр -blob. Вы можете использовать свои собственные микрокоды или найти последние производственные микрокоды Intel и AMD в репозитории Intel, AMD, VIA & Freescale CPU Microcodes. Чтобы извлечь последний микрокод из MCB, введите один двоичный файл микрокода и используйте параметры -blob -search. MC Extractor проверит обнаруженный MCB, проверит, не является ли микрокод уже актуальным, прежде чем извлечь последний, и уведомит об этом.
Во время работы MC Extractor может столкнуться с проблемами, которые могут вызвать заметки, предупреждения и/или ошибки. Заметки (жёлтый/зелёный цвет) предоставляют полезную информацию о характеристике данной конкретной прошивки. Предупреждения (фиолетовый цвет) уведомляют пользователя о возможных проблемах, которые могут вызвать нестабильность системы. Ошибки (красный цвет) отображаются, когда происходит что-то неожиданное или проблематичное.
MC Extractor состоит из двух файлов: скрипта (MCE.py) и его базы данных (MCE.db). Скачайте последнюю версию на вкладке Releases, название должно начинаться с «MC Extractor vX.Y.Z». Возможно, вам придётся прокрутить немного вниз, если вверху есть выпуски БД. Последняя может использоваться для обновления устаревшей БД, которая была включена в последний выпуск «MC Extractor vX.Y.Z», название должно начинаться с «DB rXY».
MC Extractor должен работать во всех операционных системах Windows, Linux или macOS, которые поддерживают Python >= 3.7.
Для запуска MC Extractor необходимо установить Python >= 3.7, а затем следующие сторонние модули Python:
pip3 install colorama pltable
Примечание: Некоторые изображения могут быть устаревшими и показывать более старые версии MC Extractor.


















