
Parla direttamente con il tuo Intel Management Engine — strumento Python senza dipendenze. Trova perdite di memoria, manifest delle partizioni, probing MKHI live. Il primo HECI Spy pubblico.
"Il tuo computer contiene un secondo computer segreto. Lo abbiamo trovato, mappato e documentato ciò che si nasconde al suo interno."
Uno script Python. Zero dipendenze. Parla direttamente con il tuo Intel Management Engine.
python scripts/heci_spy.py
# Requirements: Windows, Python 3.6+, Run as Administrator
Cosa fa:
Appena eseguito su un Lenovo IdeaPad Gaming 3 (i7-12650H, CSME 16.0.15.1735):
MKHI v3.1 | FW 16.0.1735.15 | 8 partitions found | GEN.1B: 0x00C344CA (changes each run!)
Abbiamo confermato: 7/12 comandi MKHI rispondono. Il ME è vivo, parla e perde memoria.
▶️ Guarda la demo di 35 secondi — (tasto destro e salva con nome, oppure caricalo su YouTube per la riproduzione inline)
📊 Visualizza la presentazione completa di 21 slide
Questa è la prima divulgazione pubblica in assoluto della struttura interna completa del firmware Intel CSME 16.x (Alder Lake), decodificato da hardware reale.
Nessuno ha mai pubblicato:
Tutto da un Lenovo IdeaPad Gaming 3 con Intel Core i7-12650H (12ª generazione Alder Lake).
L'Intel Management Engine (ME) è un microcontrollore nascosto integrato in ogni CPU Intel moderna. Esegue il proprio sistema operativo, ha il proprio processore (Synopsys ARC EM) e opera 24/7 — anche quando il tuo PC è completamente spento. La maggior parte delle persone sa che esiste. Quasi nessuno ci ha guardato dentro.
Questo progetto lo fa.
Abbiamo con successo:
IfwiRoot/ (THE ENTIRE FIRMWARE)
├── BiosRegion (Your BIOS — 24MB)
├── DescriptorRegion (Flash layout)
│ ├── FDBAR/ (Flash Database)
│ │ ├── FLASH_VALID_SIGNATURE
│ │ ├── FLMAP0-4 (Component maps)
│ │ └── EcRegionPointer ← EC firmware pointer
│ ├── PchStraps (PCH hardware config)
│ │ ├── PCH_Strap_DMI_OPDMI_TLS: "4 GT/s"
│ │ ├── PCH_Strap_DMI_OPD_LVO: "0.95 Volts"
│ │ └── PCH_Strap_FIA_LOSL0-3: USB3/PCIe config
│ ├── MipDesc/ (Management Engine descriptors)
│ │ ├── PmcStraps (PMC config — Type-C ports)
│ │ └── DbCStraps (Debug Capability)
│ ├── MasterAccessPermissions ← SECURITY LOCKS
│ ├── OEM (Lenovo OEM data)
│ └── VsccTable (SPI flash component table)
│
├── CseRegion (THE INTEL ME — 4.8MB)
│ ├── RomBypass ← HIDDEN BOOT MECHANISM
│ ├── RomBypassVector (Jump table)
│ ├── BPDT1/ (Boot Partition Table 1)
│ │ ├── FTPR (Fault Tolerant Recovery — 2.2MB)
│ │ ├── RBE (ROM Bypass Engine)
│ │ ├── PMC (Power Management)
│ │ ├── IOM (Intel Orchestrator Manager)
│ │ ├── NPHY (Network PHY firmware)
│ │ ├── IDLM (Dynamic Link Manager)
│ │ ├── TBTP (Thunderbolt — 40KB readable)
│ │ ├── OEM_KM (OEM Key Manifest — Lenovo's keys)
│ │ └── PCHC (PCH Configuration)
│ ├── BPDT3/
│ │ ├── NFTP (Non-Fault Tolerant — 436KB readable)
│ │ ├── ISHC (Integrated Sensor Hub — 88KB)
│ │ ├── IUNIT (Intel Unit firmware)
│ │ └── GBST (Performance Boost)
│ └── DATA_PARTITION/
│ ├── FLOG (Flash Log)
│ ├── ELOG (Event Log)
│ ├── EFS (Encrypted File System)
│ ├── FITC/ (Flash Image Tool Config)
│ │ ├── HmrfpoNvar (HMRFPO config)
│ │ ├── ConfigRulesNvar (Configuration rules)
│ │ ├── PavpHdcpNvar (DRM/ HDCP config)
│ │ ├── ChipsetInit (Chipset initialization)
│ │ ├── EomNvar (End-of-Manufacturing config)
│ │ ├── TbtConfigDataNvar (Thunderbolt config)
│ │ └── CameraGpioNvar (Camera GPIO config)
│ ├── HVMP (Hypervisor Management Policy)
│ ├── IVBP (Intel Verified Boot Policy)
│ ├── IMDP (Intel Management Data Path)
│ └── UTOK (Unit Token — device authentication)
│
├── EcRegion (Embedded Controller firmware)
├── GbeRegion (Gigabit Ethernet MAC)
└── SigningContainer (Intel signing blob)
// Platform Identification (at ME+0x29C134)
{
"StrapsProject": "adp_p_straps.xml",
"HarnessProject": "ADP-P PCH (w/ADL-P / M CPU) RDL v1.0.2.5",
"HarnessLabel": "v1.30 ADP-P (Harness #50)",
"SelectedRvp": "ADL-P DDR4 (ADL-P + ADP-P)"
}
// PCH Strap Configuration (at ME+0x29C523)
{
"PCH_Strap_DMI_OPDMI_TLS": "4 GT/s",
"PCH_Strap_DMI_OPD_LVO": "0.95 Volts",
"PCH_Strap_FIA_LOSL0": "USB3",
"PCH_Strap_FIA_LOSL1": "USB3",
"PCH_Strap_FIA_LOSL2": "PCIe",
"PCH_Strap_FIA_LOSL3": "PCIe"
}
// PMC Type-C Port Configuration (at ME+0x29C753)
{
"PD0_Type_C_Port_Enabled": "Yes",
"PD0_USB2_Port": "USB2 Port 2",
"PD1_Type_C_Port_Enabled": "No",
"PD2_Type_C_Port_Enabled": "No",
"PD3_Type_C_Port_Enabled": "No"
}
// BootGuard Profile (at ME+0x29D38F)
{ "BtGuardProfileConfig": 3 }
Intel On-Die Root CA (ODCA CA2)
│ https://tsci.intel.com/.../ODCA_CA2_CSME_Indirect.crl
└── signs
CSME ADL ROM CA0 (Root of Trust — CPU fuses)
│ Serial: 0x01 | SHA-256: 86474ecc2fc0c74b
│ BURNED INTO HARDWARE — CANNOT be changed
├── signs
│ CSME ADL SVN01 Kernel CA0 (Core ME OS)
│ └── signs CSME ADL PAVP 01SVN0 (DRM)
│ └── signs PAVP SGX CP0 + Playready
└── signs
CSME ADL PTT 01SVN0 (Platform Trust)
└── signs 3 PTT signing certificates
Intel ME (chiamato anche Intel Management Engine o CSME) è un sottosistema autonomo integrato nel Platform Controller Hub (PCH). È presente in ogni chipset consumer Intel dal 2008.
+-------------------------------------------------------+
| YOUR COMPUTER |
| |
| +-----------+ +-----------+ +---------------+ |
| | | | | | | |
| | Windows | | Linux | | Intel ME | |
| | (your OS)| | (maybe) | | (secret OS) | |
| | | | | | | |
| +-----------+ +-----------+ +---------------+ |
| | | | |
| +------- CPU ---+------- PCH ----+ |
| |
| You control this You NEVER see this |
+-------------------------------------------------------+
Abbiamo scoperto tutti i 29 moduli che compongono il sistema operativo interno del ME:
Lenovo BIOS Update (JMCN48WW) -> Extracted Win_JMCN.BIN (34.1 MB)
Abbiamo usato strumenti standard di estrazione BIOS per estrarre l'immagine del firmware grezza dal pacchetto di aggiornamento ufficiale Lenovo.
CSME System Tools v16.1
├── MEInfoWin64 -> Queried live ME hardware status
├── FPTW64 -> Dumped live ME firmware from SPI flash
└── MEManufWin64 -> Ran hardware self-tests (10/10 passed)
Abbiamo usato gli strumenti ingegneristici di Intel per comunicare con l'hardware ME tramite l'interfaccia HECI/MEI.
ME_region.bin (4,943,872 bytes)
├── $FPT at 0x216000 -> Flash Partition Table
├── $CPD at FTPR+0x00 -> Code Partition Directory (29 modules)
├── $MN2 at FTPR+0x2CC -> Manifest v2 (RSA signatures)
├── X.509 Cert -> "CSME ADL ROM CA0" (Root CA)
├── Entropy Analysis -> 85% encrypted, 15% readable
└── ARC Strings -> Processor architecture confirmed
FTPR Partition Layout:
Offset 0x0000 - 0x0014 CPD Header (20 bytes)
Offset 0x0014 - 0x049C CPD Entries (29 x 24 bytes)
Offset 0x02CC - 0x0840 FTPR.man (manifest)
Offset 0x0840 - 0x0888 intl.cfg.met (metadata)
Offset 0x1000 - 0x1798 rot.key (Root of Trust)
Offset 0x2000+ AES-encrypted modules
Unencrypted code at ME+0x1C1000 contains:
"ARC PARM" -> ARC Processor Parameters register
"DROM" -> ARC Data ROM constant storage
"EE_CIO" -> ARC Core I/O exception handler
"EE_DMA" -> ARC DMA exception handler
"EE_LC" -> ARC Loop Count exception
"PATCHES" -> Processor microcode patches
"APP EM" -> Application Emulation layer
Dalle query dell'hardware ME live:
In sintesi: Questa istanza del ME è bloccata permanentemente a livello hardware. Non esiste alcun metodo solo software per modificarla, disabilitarla o bypassarla. Sarebbe necessaria la programmazione fisica della SPI flash con strumenti hardware — e anche in quel caso, i fuse bruciati all'interno del PCH non possono essere ripristinati.
MEAnalyzer v1.311.0 va in crash con KeyError: '01' quando analizza il firmware ADL CSME 16.x a causa di una ricerca non supportata nel File System Dictionary EFS.
Correzione: abbiamo modificato la funzione efs_anl() per usare un accesso sicuro al dizionario (dict.get() invece dell'indicizzazione diretta della chiave) e abbiamo racchiuso la chiamata di analisi EFS in un blocco try/except.
# Before (crashes):
if 'EFST' in ftbl_dict[ftbl_plat_id][ftbl_dict_id]:
# After (safe):
if ftbl_plat_id in ftbl_dict and ftbl_dict_id in ftbl_dict[ftbl_plat_id] and 'EFST' in ftbl_dict[ftbl_plat_id][ftbl_dict_id]:
intel-me-research/
├── README.md # This file
├── scripts/
│ ├── heci_spy.py # 🔥 FLAGSHIP: Talk to your Intel ME directly
│ ├── analyze_cpd.py # Code Partition Directory parser
│ ├── analyze_me_region.py # Full ME region analysis
│ ├── extract_modules.py # Module extraction tool
│ └── patch_mea.py # MEAnalyzer fix for CSME 16.x
├── evidence/
│ ├── WORLD_FIRST_EVIDENCE.py # Master evidence presentation
│ ├── DEEPER_LAYER.py # Timestamp + EC + cert analysis
│ ├── NUCLEAR_SCAN.py # Complete flash + security map
│ ├── DEEP_SECRET_HUNT.py # Secret hunting script
│ ├── DEEP_DIVE_3.py # JSON config + cert decoding
│ ├── DECODE_CERTIFICATES.py # X.509 certificate decoder
│ └── certs/ # Extracted DER certificates (13)
├── docs/
│ ├── METHODOLOGY.md # Detailed methodology
│ └── FINDINGS.md # All findings with evidence
└── results/
├── modules_summary.csv # Module inventory
└── security_posture.csv # Security status results
Questo progetto ha soli scopi educativi e di ricerca. Gli strumenti e le tecniche dimostrati qui dovrebbero essere usati solo su hardware di tua proprietà. L'accesso non autorizzato a sistemi informatici è illegale. Questa ricerca mira a migliorare la comprensione della sicurezza hardware per scopi difensivi.
Realizzato con curiosità e caffeina. Questo progetto dimostra che la ricerca sulla sicurezza hardware è accessibile — non serve un laboratorio o attrezzature costose. Basta un laptop, determinazione e gli strumenti giusti.
Se questo progetto ti ha aiutato a capire la sicurezza hardware, metti una stella. Se hai trovato qualcosa di nuovo, apri una issue. Rendiamo la ricerca sulla sicurezza hardware aperta e accessibile a tutti.
| Proprietà | Valore |
|---|
| Laptop | Lenovo IdeaPad Gaming 3 15IAH7 (82S9) |
| CPU | Intel Core i7-12650H (12ª generazione Alder Lake) |
| Versione ME | CSME 16.0.15.1735 |
| SKU ME | Consumer LP |
| Data ME | 2022-02-17 |
| Build | JMCN48WW |
| PCH | ADL Device 5182, Rev A1 |
| Modulo | Dimensione | Scopo |
|---|
kernel | 106 KB | Il kernel del sistema operativo — il cervello del computer segreto |
bup | 312 KB | Boot Up — il primo codice che viene eseguito all'accensione del PC |
syslib | 148 KB | Libreria di sistema — funzioni principali del sistema operativo |
loadmgr | 28 KB | Caricatore di moduli — carica dinamicamente altri moduli |
vfs | 92 KB | File system virtuale — gestisce lo storage interno del ME |
evtdisp | 16 KB | Dispatcher degli eventi — gestisce interrupt ed eventi |
maestro | 16 KB | Motore di orchestrazione — coordina i sottosistemi |
| Modulo | Dimensione | Scopo |
|---|
crypto | 216 KB | AES/RSA/HMAC — crittografa tutto ciò che il ME tocca |
policy | 36 KB | Motore delle policy di sicurezza — decide cosa PUOI fare tu |
fpf | 20 KB | Fused Protection Fuses — chiavi radicate nell'hardware |
rot.key | 2 KB | Chiave Root of Trust — identità crittografica del ME |
mca_boot | 16 KB | Autenticazione di avvio — verifica l'integrità del firmware |
mca_srv | 28 KB | Sicurezza runtime — monitora il sistema in modo continuo |
| Modulo | Dimensione | Scopo |
|---|
heci | 36 KB | Host Embedded Controller Interface — bus CPU<->ME |
ipc_drv | 16 KB | Inter-Process Communication — messaggistica tra moduli |
sec_msg | 4 KB | Messaggistica sicura — messaggi interni crittografati |
prtc | 8 KB | Gestore dei protocolli — protocolli di comunicazione |
smbus | 8 KB | Interfaccia SMBus — comunicazione con i sensori hardware |
busdrv | 8 KB | Driver di bus — comunicazione interna |
| Modulo | Dimensione | Scopo |
|---|
ptt | 164 KB | Intel PTT — sostituto di TPM via firmware |
pm | 16 KB | Power Manager — stati di sospensione/riattivazione |
pmdrv | 12 KB | Driver di Power Management |
fwupdate | 36 KB | Aggiornamento firmware — aggiorna il ME in silenzio |
storage | 72 KB | Storage flash — legge/scrive la SPI flash |
gpio | 8 KB | Controller GPIO — controllo fisico dei pin |
| Modulo | Dimensione | Scopo |
|---|
intl.cfg | 18 KB | Configurazione Intel — impostazioni di piattaforma |
FTPR.man | 1 KB | Manifest del firmware — metadati di integrità |
fitc.cfg | 0 KB | Config Flash Image Tool (placeholder vuoto) |
intl.cfg.met | 72 B | Checksum dei metadati di configurazione |
| Funzione di Sicurezza | Stato | Significato |
|---|
| FPF Committed | Sì | Fuse monouso bruciati in modo permanente |
| PCH Unlocked | Disabilitato | Blocco a livello hardware attivo |
| Flash Protection | Protetto | Scrittura della SPI flash bloccata |
| BootGuard Profile | 3 (Full) | Massima verifica di avvio |
| Measured Boot | Abilitato | Ogni componente di avvio è sottoposto a hash |
| NVAR Config | Bloccato | La configurazione non può essere modificata |
| EOM Settings | Blocco | Fine-produzione bloccata |
| FWUpdate Support | No | Aggiornamenti firmware disabilitati |
| CPU Debugging | Abilitato | Intel può eseguire il debug (tu no) |
| Strumento | Scopo |
|---|
| heci_spy.py 🔥 | Il nostro HECI Spy — parla con Intel ME live, zero dipendenze |
| Intel MEInfoWin64 v16.1 | Query hardware ME live |
| Intel FPTW64 v16.1 | Dump live della SPI flash |
| Intel MEManufWin64 v16.1 | Self-test di produzione |
| MEAnalyzer v1.311.0 | Analisi dei metadati del firmware |
| Radare2 6.1.8 | Disassembly di binari |
| Python 3.14 | Script di analisi personalizzati |
| Ghidra 11.3.2 | Reverse engineering del firmware |