platomav/MEAnalyzer

GitHub: platomav/MEAnalyzer

一款用于解析、识别和深度分析 Intel Engine 及图形固件的 Python 工具,内置社区固件数据库,支持固件解包、签名验证和结构化信息提取。

Stars: 1260 | Forks: 229

# ME Analyzer **Intel Engine 与图形固件分析工具** [ME Analyzer 新闻源](https://twitter.com/platomaniac) [ME Analyzer 讨论主题](https://winraid.level1techs.com/t/me-analyzer-intel-engine-firmware-analysis-tool-discussion/30876) [Intel Engine/图形/独立固件介绍](https://winraid.level1techs.com/t/intel-converged-security-management-engine-drivers-firmware-and-tools/30719) [Intel Engine/图形/独立固件仓库](https://winraid.level1techs.com/t/intel-cs-me-cs-txe-cs-sps-gsc-pmc-pchc-phy-orom-firmware-repositories/30869) ![](https://i.imgur.com/0HRnDAh.png) ## **A. 关于 ME Analyzer** ME Analyzer 是一款用于解析 Intel Engine、Intel Graphics 及其独立固件的工具,支持以下系列: - (Converged Security) Management Engine - CS(ME) - ME 2-10 - CSME 11-15 - (Converged Security) Trusted Execution Engine - (CS)TXE - TXE 0-2 - CSTXE 3-4 - (Converged Security) Server Platform Services - (CS)SPS - SPS 1-3 - CSSPS 4-5 (BA, HA, ME, PU) - Graphics System Controller - GSC - GSC 100 (DG1) - Power Management Controller - PMC - PMC APL-MCC - Platform Controller Hub Configuration - PCHC - PCHC ICP-MCC - USB Type C Physical - PHY - PHY ICP-TGP - Graphics Option ROM - OROM - OROM DG1 它可以帮助终端用户查找所有相关的固件信息,如系列、版本、发布类型、日期、SKU、平台、大小、健康状况等。ME Analyzer 也是一款功能强大的 Engine/图形/独立固件研究分析工具,具备多种结构,支持(除其他功能外)完整解析和解包 Converged Security Engine (CSE) 与 Graphics System Controller (GSC) 代码及文件系统,例如: - Flash Partition Table - FPT - Boot Partition Descriptor Table - BPDT/IFWI - CSE Layout Table - LT - CSE File Table - FTBL/EFST - CSE Virtual File System - VFS - GSC OROM-PCIR - VBT/EFI 此外,借助其庞大的数据库,ME Analyzer 能够唯一地识别和分类所有受支持的 Engine/图形/独立固件,并检查是否有固件尚未存储在相应的、由社区支持的固件仓库中。 #### **A1. ME Analyzer 功能特性** - 支持 Engine/图形固件系列 ME 2-15、TXE 0-4、SPS 1-5 和 GSC 100 - 支持 CSE/GSC 独立 (IUP) 固件系列 PMC、PCHC、PHY 和 OROM/VBT - 检测固件详细信息(系列、版本、SKU、日期、平台等) - 检测固件发布类型(Production、Pre-Production、ROM-Bypass 等) - 检测固件类型(Region、Extracted、Update 等) - 检测固件安全/更新版本号(SVN、VCN 等) - 检测 Power Management Controller (PMC) 独立固件信息 - 检测 PCH Configuration (PCHC) 独立固件信息 - 检测 USB Type C Physical (PHY) 独立固件信息 - 检测 Graphics Option ROM (OROM) 独立固件信息 - 能够完整解包所有受支持的 CSE、GSC 和/或 IUP 固件 - 能够验证 Engine/图形/IUP 的 RSA 签名和校验和 - 高级检测与验证 Engine/图形/IUP 固件大小 - 能够检测和分析 Integrated Firmware Images (IFWI/BPDT) - 能够通过拖放或输入路径分析多个文件 - 能够检测和分类任何需要关注的固件 - 能够自动扫描较新的 ME Analyzer 和数据库版本 - 报告在 Engine/图形/IUP 仓库中未找到的固件 - 报告新的、未知的、有问题的、不完整的 Engine/图形/IUP 固件 - 提供命令行参数以增强功能并协助研究 - 提供用户友好的消息提示并正确处理意外代码错误 - 显示彩色文本以标示提示、警告和错误的重要性 - 在 BSD 宽松许可证下的开源项目,带有注释辅助的代码 #### **A2. Engine 固件仓库数据库** ME Analyzer 允许终端用户和/或研究人员在没有特殊 Intel 工具(FIT/FITC、FWUpdate)或十六进制编辑器的情况下,快速分析和/或报告新的固件版本。为了有效地做到这一点,必须建立一个数据库。[Intel Engine/图形/独立固件仓库](https://winraid.level1techs.com/t/intel-cs-me-cs-txe-cs-sps-gsc-pmc-pchc-phy-orom-firmware-repositories/30869) 是我们找到的所有 (CS)ME、(CS)TXE、(CS)SPS、GSC、PMC、PCHC、PHY 和 OROM 固件的集合。它的存在对 ME Analyzer 非常重要,因为它使我们能够继续进行研究、发现新型固件、比较同一主要版本发布的相似性等。ME Analyzer 附带了一个名为 MEA.dat 的文件,这是运行该程序所必需的。它包含我们能获取的所有 Engine/图形/独立固件的条目。这主要支持两项操作:a) 通过唯一标识符键检测每个固件的系列,b) 通过在 [Intel Engine/图形/独立固件仓库](https://winraid.level1techs.com/t/intel-cs-me-cs-txe-cs-sps-gsc-pmc-pchc-phy-orom-firmware-repositories/30869) 帖子中报告,帮助更快地发现新的 Engine 固件。 #### **A3. 受支持的 Engine 固件系列/版本** | **(CS)ME** | **(CS)TXE** | **(CS)SPS** | **GSC** | **PMC** | **PCHC** | **PHY** | **OROM** | |:--------------:|:-----------:|:--------------:|:-------:|:-------:|:--------:|:-------:|:--------:| | 2 | 0 | 1 | 100 | APL | ICP | ICP | DG1 | | 3 | 1 | 2 | - | BXT | LKF | LKF | - | | 4 | 2 | 3 | - | GLK | JSP | CMP | - | | 5 | 3 | 4 (BA, HA, PU) | - | CNP | CMP | TGP | - | | 6 | 4 | 5 (ME) | - | ICP | TGP | DG1 | - | | 7 | - | - | - | LKF | MCC | - | - | | 8 | - | - | - | JSP | - | - | - | | 9 | - | - | - | CMP | - | - | - | | 10 | - | - | - | TGP | - | - | - | | 11 | - | - | - | MCC | - | - | - | | 12 | - | - | - | DG1 | - | - | - | | 13 (0, 30, 50) | - | - | - | - | - | - | - | | 14 (0, 1, 5) | - | - | - | - | - | - | - | | 15 (0, 40) | - | - | - | - | - | - | - | **任何未在上面列出的 Intel Engine/图形/独立系列和/或版本均不受支持。目前没有计划增加对其他 Intel Engine/图形/独立固件的支持。** ## **B. 如何使用 ME Analyzer** 使用 ME Analyzer 有两种方式:MEA 脚本和命令提示符。MEA 脚本允许您输入或拖放一个或多个固件,逐一分析它们或递归扫描整个目录。若要手动使用 ME Analyzer,可以在命令提示符下使用 -skip 作为参数。 #### **B1. ME Analyzer 脚本** 要使用 ME Analyzer,请选择一个或多个文件,然后将它们输入或拖放到其脚本中。您还可以通过直接运行 MEA 或先向其中拖放一个或多个文件来输入某些可选参数。请注意,由于操作系统的限制,一次可以拖放的文件数量是有限的。如果后者是个问题,您随时可以使用 -mass 参数递归扫描整个目录,如下所述。 #### **B2. ME Analyzer 参数** 有多种参数可以增强或修改 ME Analyzer 的默认行为: * -? : 显示帮助和使用说明界面 * -skip : 跳过欢迎和选项界面 * -exit : 跳过“按回车键退出”提示 * -mass : 扫描给定目录下的所有文件 * -pdb : 将唯一的输入文件 DB 名称写入文件 * -dbn : 根据唯一的 DB 名称重命名输入文件 * -duc : 禁用对 MEA 和 DB 更新的自动检查 * -dcm : 禁用消息提示时的自动输入文件复制 * -out : 定义所有 MEA 操作的输出目录 * -dfpt : 显示 FPT、BPDT、OROM 和 CSE/GSC Layout Table 信息 * -unp86 : 解包所有受支持的 CSE、GSC 和/或 IUP 固件 * -bug86 : 在 CSE/GSC/IUP 解包期间出错时启用暂停 * -ver86 : 在 CSE/GSC/IUP 解包期间启用详细输出 * -html : 在 MEA 操作期间写入可解析的 HTML 信息文件 * -json : 在 MEA 操作期间写入可解析的 JSON 信息文件 #### **B3. ME Analyzer 流程控制** 在运行期间,ME Analyzer 可能会遇到触发提示、警告和/或错误的问题。提示(黄/绿色)提供有关此特定固件特征的有用信息。警告(紫色)通知用户可能导致系统不稳定的潜在问题。当遇到意外或有问题的状况时,会显示错误(红色)。 ## **C. 下载 ME Analyzer** ME Analyzer 由四个文件组成:脚本 (MEA.py) 及其数据库 (MEA.dat、Huffman.dat 和 FileTable.dat)。从 [Releases](https://github.com/platomav/MEAnalyzer/releases) 选项卡下载最新版本,标题应以“ME Analyzer vX.Y.Z”开头。如果顶部有 DB 版本发布,您可能需要向下滚动一点。后者可用于更新与最新“ME Analyzer vX.Y.Z”版本捆绑在一起的过时 DB,其标题应以“DB rXY”开头。 #### **C1. 兼容性** ME Analyzer 应在所有支持 [Python >= 3.7](https://www.python.org/downloads/) 的 Windows、Linux 或 macOS 操作系统上运行。 #### **C2. 先决条件** 要运行 ME Analyzer,您需要安装 [Python >= 3.7](https://www.python.org/downloads/),然后安装以下第三方 Python 模块: * [colorama](https://pypi.org/project/colorama/) * [crccheck](https://pypi.org/project/crccheck/) * [pltable](https://pypi.org/project/PLTable/) ## **D. 截图** **注意:** 某些截图可能已过时,描绘的是较旧版本的 ME Analyzer 及其功能。 ![](https://i.imgur.com/0HRnDAh.png) ![](https://i.imgur.com/Sns8rtN.png) ![](https://i.imgur.com/xqvD43s.png) ![](https://i.imgur.com/S2I8uRD.png) ![](https://i.imgur.com/aXKKq8j.png) ![](https://i.imgur.com/xY2aWeX.png) ![](https://i.imgur.com/7oLhnMQ.png) ![](https://i.imgur.com/wkcx30U.png) ![](https://i.imgur.com/9d8vAnF.png) ![](https://i.imgur.com/n9u2mnc.png) ![](https://i.imgur.com/an23XZv.png) ![](https://i.imgur.com/fhp16ve.png) ![](https://i.imgur.com/0MD8888.png) ![](https://i.imgur.com/OvIodbo.png) ![](https://i.imgur.com/0DpROxw.png) ![](https://i.imgur.com/DJJPWPX.png) ![](https://i.imgur.com/23PLB1W.png) ![](https://i.imgur.com/TkLvx7O.png) ![](https://i.imgur.com/lmvcleJ.png) ![](https://i.imgur.com/ZYprlQE.png) ![](https://i.imgur.com/UlMy3u6.png)
标签:BIOS, BPDT, FPT, GSC, IFWI, Intel CSME, Intel ME, OROM, PCHC, PMC, Python, SPS, TXE, UEFI, VFS, 二进制分析, 云安全运维, 云资产清单, 固件分析, 固件提取, 固件解包, 固件解析, 图形固件, 子域名枚举, 底层安全, 引擎固件, 无后门, 硬件安全, 管理引擎, 系统安全, 逆向工程