英特尔引擎和图形固件分析工具
作者:Sec-Labs | 发布时间:
项目地址
https://github.com/platomav/MEAnalyzer
A. 关于 ME 分析仪
ME Analyzer 是一种工具,可解析来自以下系列的英特尔引擎、英特尔显卡及其独立固件:
- (融合安全)管理引擎 - CS(ME)
- 我 2-10
- CSME 11-16.1
- (融合安全)可信执行引擎 - (CS)TXE
- 车 0-2
- CSTXE 3-4
- (融合安全)服务器平台服务 - (CS)SPS
- SPS 1-3
- CSSPS 4-6(BA、HA、ME、PU、TA)
- 图形系统控制器 - GSC
- GSC 100-101
- 电源管理控制器 - PMC
- PMC BXT-ADP
- 平台控制器集线器配置 - PCHC
- PCHC ICP-ADP
- USB C 型物理 - PHY
- 物理层ICP-ADP
- 图形选项 ROM - OROM
- 休息 19-20
它可供正在寻找所有相关固件信息(如系列、版本、版本、类型、日期、SKU、平台、大小、健康状态等)的最终用户使用。ME Analyzer 也是一个强大的引擎/图形/独立固件具有多种结构的研究分析工具,其中允许对融合安全引擎 (CSE) 和图形系统控制器 (GSC) 代码和文件系统进行完整解析和解包,例如:
- 闪存分区表 - FPT
- 引导分区描述符表 - BPDT/IFWI
- CSE 布局表 - LT
- CSE 文件表 - FTBL/EFST
- CSE 虚拟文件系统 - VFS
- GSC OROM-PCIR - VBT/EFI
此外,借助其广泛的数据库,ME Analyzer 能够唯一地识别和分类所有支持的引擎/图形/独立固件,并检查尚未存储在等效的、社区支持的固件存储库中的任何固件。
A1。 ME 分析仪功能
- 支持引擎固件系列 ME 2-16.1、TXE 0-4 和 SPS 1-6
- 支持图形固件系列 GSC DG1 (100) 和 DG2 (101)
- 支持 CSE/GSC 独立 (IUP) 固件系列 PMC、PCHC、PHY 和 OROM
- 检测固件详细信息(系列、版本、SKU、日期、平台等)
- 固件版本检测(生产、预生产、ROM-Bypass 等)
- 固件类型检测(区域、提取、更新等)
- 检测固件安全/更新版本号(SVN、VCN 等)
- 检测电源管理控制器 (PMC) 独立固件信息
- 检测 PCH 配置 (PCHC) 独立固件信息
- 检测 USB Type C 物理 (PHY) 独立固件信息
- 检测图形选项 ROM (OROM) 独立固件信息
- 能够完全解压所有支持的 CSE、GSC 和/或 IUP 固件
- 能够验证引擎/图形/IUP RSA 签名和校验和
- 引擎/图形/IUP固件大小的高级检测和验证
- 能够检测和分析集成固件映像 (IFWI/BPDT)
- 能够通过拖放或输入路径分析多个文件
- 能够检测和分类任何需要注意的固件
- 能够自动扫描更新的 ME 分析器和数据库版本
- 报告在引擎/图形/IUP 存储库中找不到的固件
- 报告新的、未知的、有问题的、不完整的等引擎/图形/IUP 固件
- 具有命令行参数以增强功能并协助研究
- 具有用户友好的消息和对意外代码错误的正确处理
- 显示彩色文本以表示注释、警告和错误的重要性
- BSD 许可许可下的开源项目,注释辅助代码
A2。 引擎固件存储库数据库
ME Analyzer 允许最终用户和/或研究人员快速分析和/或报告新固件版本,而无需使用特殊的英特尔工具(FIT/FITC、FWUpdate)或十六进制编辑器。 为了有效地做到这一点,必须建立一个数据库。 英特尔 引擎/图形/独立固件存储库 是我们发现的每个 (CS)ME、(CS)TXE、(CS)SPS、GSC、PMC、PCHC、PHY 和 OROM 固件的集合。 它的存在对 ME Analyzer 非常重要,因为它允许我们继续进行研究、寻找新类型的固件、比较相同主要版本的相似性等。与 ME Analyzer 捆绑在一起的是一个名为 MEA.dat 的文件,该文件是程序所需的跑。 它包括我们可用的所有引擎/图形/独立固件的条目。 上报告它们来帮助更快地找到新的引擎固件:驱动程序、固件和工具 这主要适用于两种操作:a) 通过唯一标识符密钥检测每个固件的系列;b) 通过在英特尔(融合安全)管理引擎 或 英特尔(融合安全)可信执行引擎:分别为驱动程序、固件和工具 线程。
B. 如何使用 ME 分析仪
ME Analyzer 有两种使用方法,MEA 可执行文件/脚本和命令提示符。 MEA 可执行文件允许您拖放一个或多个固件并一一分析它们或递归扫描整个目录。 要手动调用 ME Analyzer,可以使用命令提示符和 -skip 作为参数。
B1。 ME 分析器可执行文件
要使用 ME Analyzer,请选择一个或多个文件并将它们拖放到其可执行文件/脚本中。 您还可以通过直接运行 MEA 或首先将一个或多个文件放入其中来输入某些可选参数。 请记住,由于操作系统的限制,一次可以删除多少个文件是有限制的。 如果后者有问题,您始终可以使用 -mass 参数递归扫描整个目录,如下所述。
B2。 ME 分析仪参数
有多种参数可以增强或修改 ME Analyzer 的默认行为:
- -? :显示帮助和使用屏幕
- -skip :跳过欢迎和选项屏幕
- -exit : 跳过按回车键退出提示
- -mass :扫描给定目录的所有文件
- -pdb :将唯一的输入文件 DB 名称写入文件
- -dbn :根据唯一的数据库名称重命名输入文件
- -duc : 禁用自动检查 MEA & DB 更新
- -dfpt:显示 FPT、BPDT、OROM 和 CSE/GSC 布局表信息
- -unp86:解压所有支持的 CSE、GSC 和/或 IUP 固件
- -bug86:在 CSE/GSC/IUP 解包期间启用错误暂停
- -ver86 : 在 CSE/GSC/IUP 解包期间启用详细输出
- -html:在 MEA 操作期间写入可解析的 HTML 信息文件
- -json :在 MEA 操作期间写入可解析的 JSON 信息文件
B3。 ME 分析仪错误控制
在操作过程中,ME Analyzer 可能会遇到可能触发注释、警告和/或错误的问题。 注释(黄色/绿色)提供有关此特定固件特性的有用信息。 警告(紫色)通知用户可能导致系统不稳定的问题。 遇到意外或问题时会显示错误(红色)。
C. 下载 ME 分析器
ME Analyzer 由四个文件组成,可执行文件/脚本(MEA.exe、MEA.py 或 MEA)和数据库(MEA.dat、Huffman.dat 和 FileTable.dat)。 我只为 Windows 提供了一个已经构建/冻结/编译的二进制文件(由 那些图标 在 CC BY 3.0 许可下设计的图标)。 因此, 您无需在 Windows 下手动构建/冻结/编译 ME Analyzer 。 相反,从 Releases 选项卡下载最新版本,标题应以“ME Analyzer v1.XX”开头。 如果顶部有数据库版本,您可能需要向下滚动一点。 后者可用于更新与最新可执行版本捆绑在一起的过时数据库,标题应以“DB rXX”开头。 要提取已构建/冻结/编译的存档,您需要使用支持 RAR5 压缩的程序。
C1。 兼容性
ME Analyzer 应该适用于所有支持 Python >= 3.7 的 Windows、Linux 或 macOS 操作系统。 计划使用已构建/冻结/编译的二进制文件的 Windows 用户必须确保他们安装了最新的 Windows 更新,其中包括所有必需的“通用 C 运行时 (CRT)”库。
C2。 代码先决条件
要运行 ME Analyzer 的 python 脚本,您需要安装以下第 3 方 Python 模块:
pip3 安装 colorama
pip3 安装 crccheck
pip3 安装 PLTable
C3。 使用 PyInstaller 构建/冻结/编译
PyInstaller 可以在所有三个支持的平台上构建/冻结/编译 ME Analyzer,它运行简单并且经常更新。
- 确保安装了 Python 3.7.0 或更新版本:
python version
- 使用 pip 安装 PyInstaller:
pip3 install pyinstaller
- 使用 pip 安装 colorama:
pip3 install colorama
- 使用 pip 安装 crccheck:
pip3 install crccheck
- 使用 pip 安装 PLTable:
pip3 install PLTable
- 构建/冻结/编译 ME 分析器:
pyinstaller --noupx --onefile MEA.py
在 dist 文件夹中,您应该找到最终的 MEA 可执行文件
C4。 反病毒误报
某些防病毒软件可能声称构建/冻结/编译的 MEA 可执行文件包含病毒。 任何此类检测都是误报,通常是 PyInstaller。 您可以切换到更好的防病毒软件,向他们的支持报告误报,将 MEA 可执行文件添加到排除项,自己构建/冻结/编译 MEA 或直接使用 Python 脚本。
D. 图片
注意: 一些图片可能已经过时,并且描绘了旧版 ME Analyzer。





















