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 允许终端用户和/或研究人员快速提取、查看、转换及报告新微码版本,而无需使用特殊工具或十六进制编辑器。为实现高效操作,需要构建一个数据序库。Intel, AMD, VIA & Freescale CPU 微码仓库 收集了我们发现的每一个最新生产版的 Intel、AMD 和 VIA CPU 微码。该仓库对 MC Extractor 至关重要,使我们能够继续开展研究、发现新类型微码、比较版本之间的相似性、检查更新的二进制文件等。MC Extractor 附带一个名为 MCE.db 的文件,程序运行需要它。该文件包含了我们可用的所有微码二进制文件的条目。这主要支持两个操作:a) 检查导入的微码是否为最新;b) 通过将结果报告到 Intel, AMD, VIA & Freescale CPU 微码仓库讨论 主题,帮助更快发现新的微码版本。
MC Extractor 最初基于 Lordkag 的 UEFIStrip 工具的部分代码,因此首先我要感谢他的所有工作,正是这些工作启发了这个项目。此外,以下是了解微码的绝佳去处:Intel 的官方下载站点和官方文档、Intel 微码补丁认证、Coreboot(a、b、c)、Dominic Chen 的 Microparse、Ben Hawkes 的 笔记与研究、Richard A Burton 的 Microdecode、AIDA64 CPUID dumps、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 可以构建自己的微码 Blob(MCB)格式,该格式将多个 Intel 或 AMD 微码二进制文件合并到一个文件中。这主要允许根据等效的用户微码二进制输入,快速自动提取最新的兼容微码二进制文件。MCB 由一个可识别的头部和一个条目查找表(LUT)以及实际的微码二进制数据组成。头部包含微码供应商(Intel 或 AMD)、微码数量、MCE 数据序库修订版本以及覆盖整个 blob 的校验和等信息。LUT 条目包含每个微码二进制文件的详细信息,如 CPUID、平台、修订版本、日期、大小、校验和以及在 blob 中的偏移量。

要构建 MCE 微码 Blob(MCB.bin),输入所需的 Intel 或 AMD 微码二进制文件,并使用 -blob 参数。您可以使用自己的微码,或者从 Intel, AMD, VIA & Freescale CPU 微码 仓库中获取最新的生产版 Intel 和 AMD 微码。要从 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 应能在所有支持 Python >= 3.7 的 Windows、Linux 或 macOS 操作系统上运行。
要运行 MC Extractor,您需要安装 Python >= 3.7,然后安装以下第三方 Python 模块:
pip3 install colorama pltable
注意: 部分截图可能已过时,展示的是较旧的 MC Extractor 版本。


















