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

A. О MC Extractor
MC Extractor — это инструмент, который разбирает двоичные файлы микрокода процессоров Intel, AMD, VIA и Freescale. Он может использоваться конечными пользователями, которые ищут всю релевантную информацию о микрокоде, такую как CPUID, Platform, Version, Date, Release, Size, Checksum и т.д. Он способен конвертировать контейнеры микрокода Intel (dat, inc, h, txt) в двоичные образы для интеграции в BIOS, обнаруживать новый/неизвестный микрокод, проверять здоровье микрокода, статус «Обновлено/Устарело» и многое другое. MC Extractor также может использоваться как инструмент исследовательского анализа с множеством структур, которые позволяют, среди прочего, полный разбор и отображение информации обо всех документированных или нет заголовках микрокода. Более того, с помощью своей обширной базы данных MC Extractor способен уникальным образом категоризировать все поддерживаемые микрокоды, а также проверять, какие микрокоды ещё не были сохранены в репозиториях микрокода.
A1. Возможности MC Extractor
- Поддерживает все текущие и устаревшие микрокоды с 1995 года и далее
- Сканирует все микрокоды Intel, AMD, VIA и Freescale за один запуск
- Проверяет целостность всех извлечённых микрокодов через контрольные суммы
- Проверяет, являются ли все микрокоды Intel, AMD и VIA последними или устаревшими
- Ищет по запросу все микрокоды на основе CPUID
- Показывает структуры заголовков микрокода и подробности по запросу
- Игнорирует большинство ложных срабатываний на основе проверок здравомыслия
- Поддерживает известные специальные, фиксированные или модифицированные микрокоды
- Возможность автоматического извлечения расширенных микрокодов Intel
- Возможность автоматического извлечения контейнеров Intel (dat, inc, txt, h)
- Возможность быстрого добавления новых записей микрокода в базу данных
- Возможность определения метки Production/Pre-Production Release для Intel
- Возможность проверки обновлений MC Extractor и/или БД по запросу
- Возможность анализа нескольких файлов путём перетаскивания или по указанию пути
- Возможность игнорирования извлечённых дубликатов на основе имени и содержимого
- Возможность автоматического сканирования новых версий MC Extractor и базы данных
- Сообщает обо всех микрокодах, которые не найдены в репозиториях микрокода
- Оснащён параметрами командной строки для улучшения функциональности и помощи в исследованиях
- Оснащён понятными сообщениями и корректной обработкой неожиданных ошибок кода
- Показывает результаты в красивых таблицах с цветным текстом для выделения важности
- Проект с открытым исходным кодом под либеральной лицензией, код с комментариями
A2. База данных репозитория микрокода
MC Extractor позволяет конечным пользователям и/или исследователям быстро извлекать, просматривать, конвертировать и сообщать о новых версиях микрокода без использования специальных инструментов или Hex-редакторов. Для эффективного выполнения этой задачи потребовалось создать базу данных. Репозитории микрокода процессоров Intel, AMD, VIA и Freescale — это собрание всех последних производственных микрокодов Intel, AMD и VIA, которые мы нашли. Его существование очень важно для MC Extractor, так как позволяет нам продолжать исследования, находить новые типы микрокода, сравнивать версии на предмет сходства, проверять обновлённые двоичные файлы и т.д. Вместе с MC Extractor поставляется файл MCE.db, который необходим для работы программы. Он содержит записи для всех двоичных файлов микрокода, доступных нам. Это обеспечивает в основном два действия: a) Проверка, является ли импортированный микрокод актуальным, и b) Помощь в более быстром обнаружении новых версий микрокода путём сообщения о них в ветке Обсуждение репозиториев микрокода процессоров Intel, AMD, VIA и Freescale.
A3. Источники и вдохновение
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) и многие другие, которых я мог забыть, но они были бы здесь в противном случае.
B. Как использовать MC Extractor
Есть два способа использования MC Extractor: скрипт MCE и командная строка. Скрипт MCE позволяет ввести или перетащить одну или несколько прошивок и просматривать их одну за другой или рекурсивно сканировать целые каталоги. Для ручного использования MC Extractor можно использовать командную строку с параметром -skip.
B1. Скрипт MC Extractor
Чтобы использовать MC Extractor, выберите один или несколько файлов и введите их или перетащите в его скрипт. Вы также можете ввести определённые необязательные параметры, либо запустив MCE напрямую, либо сначала перетащив в него один или несколько файлов. Имейте в виду, что из-за ограничений операционной системы существует ограничение на количество файлов, которые можно перетащить за раз. Если последнее является проблемой, вы всегда можете использовать параметр -mass для рекурсивного сканирования целых каталогов, как описано ниже.
B2. Параметры MC Extractor
Существуют различные параметры, которые улучшают или изменяют стандартное поведение MC Extractor:
- -? : Показывает экран справки и использования
- -skip : Пропускает экран приветствия и опций
- -exit : Пропускает приглашение «Нажмите Enter для выхода»
- -mass : Сканирует все файлы в указанном каталоге
- -info : Показывает информацию о структуре микрокода
- -add : Добавляет входной микрокод в БД, если он новый
- -dbn : Переименовывает входной файл на основе уникального имени БД
- -duc : Отключает автоматическую проверку обновлений MCE и БД
- -search : Ищет микрокоды на основе CPUID/Model
- -last : Показывает статус «Последний» на основе пользовательского ввода
- -repo : Строит репозитории микрокода из входных данных
- -blob : Строит блоб микрокода (MCB) из входных данных