Intel Engine & Graphics Firmware Analysis Tool
OTHER License
Intel Engine & Graphics Firmware Analysis Tool
Intel Engine/Graphics/Independent Firmware Introduction
Intel Engine/Graphics/Independent Firmware Repositories
ME Analyzer is a tool which parses Intel Engine, Intel Graphics and their Independent firmware from the following families:
It can be used by end-users who are looking for all relevant firmware information such as Family, Version, Release, Type, Date, SKU, Platform, Size, Health Status etc. ME Analyzer is also a powerful Engine / Graphics / Independent firmware research analysis tool with multiple structures which allow, among others, full parsing and unpacking of Converged Security Engine (CSE) & Graphics System Controller (GSC) Code and File Systems such as:
Moreover, with the help of its extensive databases, ME Analyzer is capable of uniquely identifying and categorizing all supported Engine / Graphics / Independent firmware as well as check for any firmware which have not been stored at the equivalent, community supported, Firmware Repositories yet.
ME Analyzer allows end-users and/or researchers to quickly analyze and/or report new firmware versions without the use of special Intel tools (FIT/FITC, FWUpdate) or Hex Editors. To do that effectively, a database had to be built. The Intel Engine/Graphics/Independent Firmware Repositories is a collection of every (CS)ME, (CS)TXE, (CS)SPS, GSC, PMC, PCHC, PHY & OROM firmware we have found. Its existence is very important for ME Analyzer as it allows us to continue doing research, find new types of firmware, compare same major version releases for similarities etc. Bundled with ME Analyzer is a file called MEA.dat which is required for the program to run. It includes entries for all Engine / Graphics / Independent firmware that are available to us. This accommodates primarily two actions: a) Detect each firmware's Family via unique identifier keys and b) Help find new Engine firmware sooner by reporting them at the Intel Engine/Graphics/Independent Firmware Repositories thread.
(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) | - | - | - | - | - | - | - |
Any Intel Engine/Graphics/Independent family and/or version which is not listed above, is not supported. There are no plans to add support for other Intel Engine/Graphics/Independent firmware at this point.
There are two ways to use ME Analyzer, MEA script & command prompt. The MEA script allows you to input or drag & drop one or more firmware and analyze them one by one or recursively scan entire directories. To manually use ME Analyzer, a command prompt can be used with -skip as parameter.
To use ME Analyzer, select one or multiple files and input or Drag & Drop them to its script. You can also input certain optional parameters either by running MEA directly or by first dropping one or more files to it. Keep in mind that, due to operating system limitations, there is a limit on how many files can be dropped at once. If the latter is a problem, you can always use the -mass parameter to recursively scan entire directories, as explained below.
There are various parameters which enhance or modify the default behavior of ME Analyzer:
During operation, ME Analyzer may encounter issues that can trigger Notes, Warnings and/or Errors. Notes (yellow/green color) provide useful information about a characteristic of this particular firmware. Warnings (purple color) notify the user of possible problems that can cause system instability. Errors (red color) are shown when something unexpected or problematic is encountered.
ME Analyzer consists of four files: the script (MEA.py) and its databases (MEA.dat, Huffman.dat & FileTable.dat). Download the latest version from the Releases tab, title should start with "ME Analyzer vX.Y.Z". You may need to scroll down a bit if there are DB releases at the top. The latter can be used to update the outdated DB which was bundled with the latest "ME Analyzer vX.Y.Z" release, title should start with "DB rXY".
ME Analyzer should work at all Windows, Linux or macOS operating systems which have Python >= 3.7 support.
To run ME Analyzer, you need to install Python >= 3.7, followed by these 3rd party Python modules:
pip3 install colorama crccheck pltable
Note: Some pictures may be outdated and depict older ME Analyzer versions/features.