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)

## **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 及其功能。





















标签:BIOS, BPDT, FPT, GSC, IFWI, Intel CSME, Intel ME, OROM, PCHC, PMC, Python, SPS, TXE, UEFI, VFS, 二进制分析, 云安全运维, 云资产清单, 固件分析, 固件提取, 固件解包, 固件解析, 图形固件, 子域名枚举, 底层安全, 引擎固件, 无后门, 硬件安全, 管理引擎, 系统安全, 逆向工程