Skip to content

Commit

Permalink
MEA v1.51.2 r121
Browse files Browse the repository at this point in the history
v1.51.2

Improved CSME 12 Stepping detection
Fixed crashes under rare circumstances

r121

CSME 12.0.0.1069_COR_H_B_PRD_FWU
CSSPS 04.00.04.143_HA_SKU3_PRD_REC
CSSPS 04.00.04.143_HA_SKU3_PRD_OPR
ME 9.5.63.3002_5MB_PRD_RGN
  • Loading branch information
platomav committed May 5, 2018
1 parent a611775 commit a4d3880
Show file tree
Hide file tree
Showing 5 changed files with 38 additions and 15 deletions.
7 changes: 7 additions & 0 deletions Changelog DB.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
r121

CSME 12.0.0.1069_COR_H_B_PRD_FWU
CSSPS 04.00.04.143_HA_SKU3_PRD_REC
CSSPS 04.00.04.143_HA_SKU3_PRD_OPR
ME 9.5.63.3002_5MB_PRD_RGN

r120

CSME 11.7.0.3307_COR_H_D0_PRD_RGN
Expand Down
5 changes: 5 additions & 0 deletions Changelog MEA.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
v1.51.2 r121

Improved CSME 12 Stepping detection
Fixed crashes under rare circumstances

v1.51.0 r120

Added CSE PMC unpacking & size validation
Expand Down
15 changes: 12 additions & 3 deletions MEA.dat
Original file line number Diff line number Diff line change
@@ -1,19 +1,22 @@
*** ME Analyzer Engine Firmware Repository Database ***
*** Revision r120 (2018-04-18 , 22:37) ***
*** Revision r121 (2018-05-04 , 14:12) ***

*** Converged Security Management Engine (CSME) ***

*** Version_SKU_Stepping_Release_Type_FTPR-RSASIG-SHA256 ***
*** 11 LP: Version_SKU_Stepping_Release_PDM_Type_FTPR-RSASIG-SHA256 ***

12.0.0.1069_CON_H_B_PRD_FWU_93CCF1C009833026583B72B433B1E5990FB5FC043C7FA54C1A13BF5F67440742
12.0.0.1069_COR_H_B_PRD_FWU_4A7C6FE2211293192517DF9D9029800423064343783596DB7D8D33199A026C03
12.0.0.1062_CON_H_B_PRD_RGN_A0D154336EC76A703A4D3AD943AD654A4F98A2DFE2EFB687F23969A4B7AEECD8
12.0.0.1062_CON_LP_B_PRD_RGN_3F9E7A7EC0073DFB23E605410607BDA313687FC1E3EF43CB19F923295556DD14
12.0.0.1059_CON_H_B_PRD_EXTR_28E5178B8C42FC077A5382F8827549935ABBBD51447EADA52262423E01C27FF9
12.0.0.1046_CON_H_B_PRD_EXTR_5DBD89037027C5E56A0FCEEDFFD08476FFDD82B24E246145D55D7CD440145F35
12.0.0.1046_CON_H_A_PRD_EXTR_5DBD89037027C5E56A0FCEEDFFD08476FFDD82B24E246145D55D7CD440145F35
12.0.0.1046_COR_H_A_PRD_RGN_BE2B7068691169EB15D636397C8266CF927B3454E9CFC19B8A0DD7FF50F27A77

12.0.0.1062_CON_H_B_PRE_RGN_E3A35530A780BF0D987546135049EC414AC416E5175F02AFE2CA981047530886
12.0.0.1062_CON_LP_B_PRE_RGN_40BE86EEB55473D02DBCFAF0076F9C929DE941E45779C4A60FB597B0D542B22D
12.0.0.1046_COR_H_A_PRE_RGN_81ED862EA5DD84216EF9DD15D3DDEBFD79048B19015CA8AB6D3A7F2D4C0BEB2E
12.0.0.1033_COR_H_A_PRE_RGN_F15512E065CA006801262BE0A1044DFF1EEB164FF10CC72A4F1A0E9713CCB0E4
12.0.0.1021_COR_H_A_PRE_RGN_B215BAD7C6A3C070DECC829735BAB8213DB79DA21485FD6D88FD9048FA73CB97
12.0.0.1020_CON_H_A_PRE_EXTR_67A76CBB3A43DE71ACAEDECE03CD3DE2E181FF2735DE35651026046504E82A00
Expand Down Expand Up @@ -524,6 +527,7 @@
10.0.25.1048_1.5MB_PRE_RGN_685B98098A50F53A989ADEAFD1D3190F545EC70E6C24CE32F2EECB937EE639DD
10.0.25.1048_1.5MB_BYP_RGN_D2208DCEF784B64807DE606697262557DB6FCD0CFAD82011C3648455A87AB761

9.5.63.3002_5MB_PRD_RGN_0963BD37BE734E23D92A774B777FA1FBADCEDE8D277AF2F8ECFD70B7A1F9C525
9.5.62.3002_5MB_PRD_RGN_4234E34764F722F2A3AF3B37930591BA35246386AB53D0FB664589630F00B9D7
9.5.61.3012_5MB_PRD_RGN_61C6AB020C06AD532442E382558A99C4B19305804080350BC5B7719297B2FB3C
9.5.60.1952_5MB_PRD_RGN_2C198B2727E0EDB3EC3EC027EE3ECD915BE60E5ACE8CB5DDC266D877DC12CCDB
Expand Down Expand Up @@ -1400,6 +1404,8 @@
04.00.04.294_PU_SKU3_PRD_OPR_D90582F06EBCB8D379997C0C7D876A6597E3CAC2F60128A49E5BCC3A784341A3
04.00.04.288_PU_SKU3_PRD_REC_E5A9B3F16A7EF50227F72EFC915BE20DD6693DE2370F828DC4D9CE1515C48953
04.00.04.288_PU_SKU3_PRD_OPR_09E0E40DC4B57299348ED58D6342921834DEB0E466AC1717E6FC88E22502E8D4
04.00.04.143_HA_SKU3_PRD_REC_B091DA5B3ADAC527CB10623E595F10C847B96E2C5401FD5C022AA29E2BDDF0D1
04.00.04.143_HA_SKU3_PRD_OPR_B6BCB3CC4A3F3F5D7F00ED68E32CB45CB84C2CD3F77121A5470A93E38898BBA2
04.00.04.139_HA_SKU3_PRD_REC_D820EE9386AA1BAB2AA5DD3B7466652A3090D357AD13021B42BCBCE99BBDB919
04.00.04.139_HA_SKU3_PRD_OPR_A2239435B17390B5FA0B299F96E4B43CD439ACB81072749613C0045F61A18182
04.00.03.235_PU_SKU3_PRD_REC_7D8BCC59C9CEB1B3803C476EC98BC42F639671C83650B6634A6C2B966103F1C7
Expand Down Expand Up @@ -1464,6 +1470,7 @@
04.00.04.313_PU_SKU3_PRD_EXTR_A1D600AF22E25A48F5B6C4CDBCB56B59F473BA8A698B910C606FABEC72113480
04.00.04.294_PU_SKU3_PRD_EXTR_D90582F06EBCB8D379997C0C7D876A6597E3CAC2F60128A49E5BCC3A784341A3
04.00.04.288_PU_SKU3_PRD_EXTR_09E0E40DC4B57299348ED58D6342921834DEB0E466AC1717E6FC88E22502E8D4
04.00.04.143_HA_SKU3_PRD_EXTR_B6BCB3CC4A3F3F5D7F00ED68E32CB45CB84C2CD3F77121A5470A93E38898BBA2
04.00.04.139_HA_SKU3_PRD_EXTR_A2239435B17390B5FA0B299F96E4B43CD439ACB81072749613C0045F61A18182
04.00.03.235_PU_SKU3_PRD_EXTR_5A1760B268D48CBEB53FFD3D220057907A727800FD19EDDE644126BAA438CB95
04.00.03.219_PU_SKU3_PRD_EXTR_A1012BD3B69C4DE121FB6BE6DF1EEA4CE60499AE36967042B4870A3708A4D4E8
Expand Down Expand Up @@ -1767,9 +1774,11 @@
300.2.11.1008_H_B1_PRD_IUP_PMC_BF1BDC6FCA580635949FA2141B2A30AA4EFA89BE808C816940DA122CB84A05E5
300.2.11.1003_H_B1_PRD_IUP_PMC_F7544DDA21705B11CF9185CA3C73904BD6CA085860CB5EF3F5E3297B36F727A4
300.2.1.1012_H_A1_PRD_IUP_PMC_41C3578A436632CB8D359FB673EBE767DE8E0EA1207801B372F6F0CD03D8DE42
300.2.1.1009_H_A1_PRD_IUP_PMC_C857C63C5F62D05B73931279A634152E1909FA1038D2A41E8F572C8E721FCA38
300.1.11.1013_LP_B1_PRD_IUP_PMC_BABE98303BD24EF1CACCAD28CEAD52C5D0401E77BEB043B1B7E3C5557A252C9F

300.2.11.1008_H_B1_PRE_IUP_PMC_2D24B10A5181A1356B1A6CD552759BEE826614250647596A1DE6303AFE0DA3EC
300.2.11.1003_H_B1_PRE_IUP_PMC_7C683402F47575869426A43AA5498EF2E9267592BB0628A2CAF57B2688923781
300.2.1.1012_H_A1_PRE_IUP_PMC_5D2614AAA1373D6A57EF9C1AB29619283CB890B7D2D5446B5A13A92279D82E30
300.2.1.1009_H_A1_PRE_IUP_PMC_378771C097967D7ED25F17319B80AFFFEDF486FD4D03368A1DCBC17E1A58F48D
300.1.11.1013_LP_B1_PRE_IUP_PMC_5CD7A891D4F5D8365C12A5DDEB7965E4CC1BBBFAE69864E10110869B066AF1D6
Expand Down Expand Up @@ -1838,7 +1847,7 @@ Latest_ME_100_1.5MB__10.0.55.3000
Latest_ME_100_5MB__10.0.57.3000
Latest_ME_100_SLM__10.0.35.1012
Latest_ME_95_1.5MB__9.5.60.1952
Latest_ME_95_5MB__9.5.62.3002
Latest_ME_95_5MB__9.5.63.3002
Latest_ME_95_SLM__9.5.4.1856
Latest_ME_91_1.5MB__9.1.37.1002
Latest_ME_91_5MB__9.1.43.3004
Expand Down
24 changes: 13 additions & 11 deletions MEA.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
Copyright (C) 2014-2018 Plato Mavropoulos
"""

title = 'ME Analyzer v1.51.0'
title = 'ME Analyzer v1.51.2'

import os
import re
Expand Down Expand Up @@ -1140,7 +1140,7 @@ def ext_print(self) :

pt.title = col_y + 'Extension 3, Module Information' + col_e
pt.add_row(['Name', self.Name.decode('utf-8')])
pt.add_row(['Type', ['Process','Shared Library','Data','OEM'][self.Type]])
pt.add_row(['Type', ['Process','Shared Library','Data','OEM/IUP'][self.Type]])
pt.add_row(['Compression', ['Uncompressed','Huffman','LZMA'][self.Compression]])
pt.add_row(['Reserved', '0x%X' % self.Reserved])
pt.add_row(['Metadata Size', '0x%X' % self.MetadataSize])
Expand Down Expand Up @@ -1863,7 +1863,7 @@ def ext_print(self) :

pt.title = col_y + 'Extension 15, Entry' + col_e
pt.add_row(['Name', self.Name.decode('utf-8')])
pt.add_row(['Type', ['Process','Shared Library','Data','OEM'][self.Type]])
pt.add_row(['Type', ['Process','Shared Library','Data','OEM/IUP'][self.Type]])
pt.add_row(['Hash Algorithm', ['None','SHA-1','SHA-256'][self.HashAlgorithm]])
pt.add_row(['Hash Size', '0x%X' % self.HashSize])
pt.add_row(['Metadata Size', '0x%X' % self.MetadataSize])
Expand Down Expand Up @@ -5705,6 +5705,7 @@ def mass_scan(f_path) :

# Parse IFWI/BPDT Starting Offsets
for ifwi_bpdt in range(len(bpdt_matches)):

ifwi_exist = True # Set IFWI/BPDT detection boolean

(start_fw_start_match, end_fw_start_match) = bpdt_matches[ifwi_bpdt].span() # Store BPDT range via bpdt_matches index
Expand Down Expand Up @@ -5768,7 +5769,7 @@ def mass_scan(f_path) :

x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,pmc_mn2_ver = ext_anl('$CPD', p_offset_spi, file_end, ['NaN', -1, -1, -1, -1])

if p_type == 5 and p_empty == 'No' and p_offset_spi < file_end : # Secondary BPDT (S-BPDT)
if p_type == 5 and p_empty == 'No' and p_offset_spi < file_end and reading[p_offset_spi:p_offset_spi + 0x2] == b'\xAA\x55' : # Secondary BPDT (S-BPDT)
init_s_bpdt_ver = int.from_bytes(reading[start_fw_start_match + 0x6:start_fw_start_match + 0x8], 'little') # BPDT Version
if init_s_bpdt_ver == 2 : s_bpdt_hdr = get_struct(reading, p_offset_spi, BPDT_Header_2)
else : s_bpdt_hdr = get_struct(reading, p_offset_spi, BPDT_Header)
Expand Down Expand Up @@ -5801,7 +5802,8 @@ def mass_scan(f_path) :
if s_p_type in bpdt_dict : s_p_name = bpdt_dict[s_p_type]
else : s_p_name = 'Unknown'

cse_in_id,x1,x2 = cse_part_inid(reading, s_p_offset_spi, ext_dict)
if s_p_empty == 'No' and s_p_offset_spi < file_end :
cse_in_id,x1,x2 = cse_part_inid(reading, s_p_offset_spi, ext_dict)

# Store BPDT Partition info for -dfpt
if param.fpt_disp :
Expand Down Expand Up @@ -6745,8 +6747,7 @@ def mass_scan(f_path) :
sku_db, upd_found = sku_db_upd_cse(sku_init_db, sku_result, sku_stp, upd_found, False) # Store DB SKU and check Latest version

if minor == 0 : platform = 'SPT' # Skylake, Sunrise Point
elif minor in [5,6] : platform = 'SPT/KBP' # Skylake/Kabylake, Sunrise/Union Point
elif minor in [7,8] : platform = 'SPT/KBP/CNP' # Skylake/Kabylake(R)/Coffeelake, Sunrise/Union/Cannon Point
elif minor in [5,6,7,8] : platform = 'SPT/KBP' # Skylake/Kabylake(R)/Coffeelake, Sunrise/Union Point
elif minor in [10,11] : platform = 'BSF' # Skylake-X/Kabylake-X, Basin Falls
elif minor in [20,21] : platform = 'LBG' # Skylake-SP, Lewisburg

Expand Down Expand Up @@ -6814,7 +6815,8 @@ def mass_scan(f_path) :
if sku_stp == 'NaN' :

# Adjust Production PCH/SoC Stepping from known values
if release == 'Production' : sku_stp = 'B'
if release == 'Production' and (minor > 0 or (minor == 0 and hotfix > 0 or (hotfix == 0 and build >= 1062))) :
sku_stp = 'B'
#else : sku_stp = 'A' # <= 12.x.x.xxxx

# Detected stitched PMC firmware
Expand Down Expand Up @@ -7167,10 +7169,10 @@ def mass_scan(f_path) :
if pmc_mn2_signed == 'Production' : msg_pt.add_row(['PMC Firmware Latest', [col_g + 'Yes' + col_e, col_r + 'No' + col_e][pmcp_upd_found]])

if ((variant == 'CSME' and major >= 12) or (variant == 'CSTXE' and major >= 3)) and not wcod_found :
msg_pt.add_row(['OEM/ODM Configuration', ['No','Yes'][int(oem_config)]])
msg_pt.add_row(['OEM/ODM RSA Signature', ['No','Yes'][int(oem_signed)]])
msg_pt.add_row(['OEM Configuration', ['No','Yes'][int(oem_config)]])
msg_pt.add_row(['OEM RSA Signature', ['No','Yes'][int(oem_signed)]])

if (rgn_exist or ifwi_exist) and variant in ('CSME','CSTXE','CSSPS','TXE') : msg_pt.add_row(['OEM/ODM Unlock Token', ['No','Yes'][int(utok_found)]])
if (rgn_exist or ifwi_exist) and variant in ('CSME','CSTXE','CSSPS','TXE') : msg_pt.add_row(['OEM Unlock Token', ['No','Yes'][int(utok_found)]])

if variant == 'CSME' and major >= 12 and not wcod_found : msg_pt.add_row(['FWUpdate Support', ['No','Yes'][int(pmcp_fwu_found)]])

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ ME Analyzer is developed using Python 3.6 and can work under Windows, Linux and

#### **C1. Compatibility**

ME Analyzer should work at all Windows, Linux or macOS operating systems which have Python 3.6 support. Any latter v3.x releases might work depending on whether MEA's prerequisites are also compatible. Windows users who plan to use the already built/frozen/compiled binaries must make sure that they have the latest Windows Updates installed which include all required "Universal C Runtime (CRT)" libraries. Windows users who plan to use console redirection must first "set PYTHONIOENCODING=UTF-8".
ME Analyzer should work at all Windows, Linux or macOS operating systems which have Python 3.6 support. Any latter v3.x releases might work depending on whether MEA's prerequisites are also compatible. Windows users who plan to use the already built/frozen/compiled binaries must make sure that they have the latest Windows Updates installed which include all required "Universal C Runtime (CRT)" libraries.

#### **C2. Code Prerequisites**

Expand Down

0 comments on commit a4d3880

Please sign in to comment.