
تحدّث إلى محرك إدارة إنتل مباشرة — أداة بايثون بدون تبعيات. يكتشف تسريبات الذاكرة، وبيان الأقسام، والاستكشاف المباشر لـMKHI. أول HECI Spy متاح للعموم.
"يحتوي جهاز الكمبيوتر الخاص بك على كمبيوتر ثانٍ سري بداخله. لقد وجدناه، ورسمناه، ووثّقنا ما يختبئ هناك."
سكربت Python واحد. بدون أي تبعيات. تحدّث إلى Intel Management Engine مباشرة.
python scripts/heci_spy.py
# Requirements: Windows, Python 3.6+, Run as Administrator
ماذا يفعل:
قمنا بتشغيله للتو على 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!)
لقد تأكدنا: 7 من أصل 12 أمراً من أوامر MKHI تستجيب. إن ME حيّ، يتحدث، ويُسرّب الذاكرة.
▶️ شاهد العرض التجريبي (35 ثانية) — (انقر بزر الفأرة الأيمن ثم اختر "حفظ باسم"، أو ارفعه إلى YouTube للتشغيل المضمّن)
📊 اعرض العرض التقديمي الكامل (21 شريحة)
هذا هو أول كشف عام على الإطلاق للبنية الداخلية الكاملة للبرنامج الثابت لـ Intel CSME 16.x (Alder Lake)، مفكوك من عتاد حيّ.
لم ينشر أحد من قبل:
كل ذلك من Lenovo IdeaPad Gaming 3 بمعالج Intel Core i7-12650H (12th Gen Alder Lake).
Intel Management Engine (ME) هو متحكم دقيق مخفي مدمج في كل معالج Intel حديث. يعمل بنظام تشغيل خاص به، ويمتلك معالجاً خاصاً به (Synopsys ARC EM)، ويعمل 24/7 — حتى عندما يكون جهاز الكمبيوتر مغلقاً تماماً. معظم الناس يعرفون أنه موجود. لا أحد تقريباً نظر إلى داخله.
هذا المشروع فعل ذلك.
نجحنا في:
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 (يُطلق عليه أيضاً Intel Management Engine أو CSME) هو نظام فرعي مستقل مدمج في Platform Controller Hub (PCH). وهو موجود في كل شرائح Intel الاستهلاكية منذ عام 2008.
+-------------------------------------------------------+
| YOUR COMPUTER |
| |
| +-----------+ +-----------+ +---------------+ |
| | | | | | | |
| | Windows | | Linux | | Intel ME | |
| | (your OS)| | (maybe) | | (secret OS) | |
| | | | | | | |
| +-----------+ +-----------+ +---------------+ |
| | | | |
| +------- CPU ---+------- PCH ----+ |
| |
| You control this You NEVER see this |
+-------------------------------------------------------+
اكتشفنا جميع الوحدات الـ 29 التي يتكون منها نظام التشغيل الداخلي لـ ME:
Lenovo BIOS Update (JMCN48WW) -> Extracted Win_JMCN.BIN (34.1 MB)
استخدمنا أدوات استخراج BIOS قياسية لسحب صورة البرنامج الثابت الخام من حزمة تحديث 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)
استخدمنا أدوات Intel الهندسية الخاصة للتواصل مع عتاد ME عبر واجهة 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
من استعلامات عتاد ME الحيّ:
بعبارة أخرى: هذا المثيل من ME مقفل بشكل دائم على مستوى العتاد. لا توجد طريقة برمجية فقط لتعديله أو تعطيله أو تجاوزه. ستكون هناك حاجة إلى برمجة فيزيائية لـ SPI flash باستخدام أدوات عتادية — وحتى عندئذٍ، لا يمكن التراجع عن الفيوزات المحروقة داخل PCH.
يتعطل MEAnalyzer v1.311.0 مع خطأ KeyError: '01' عند تحليل برمجيات CSME 16.x ADL الثابتة بسبب بحث غير مدعوم في قاموس نظام ملفات EFS.
الإصلاح: قمنا بتعديل دالة efs_anl() لاستخدام وصول آمن للقاموس (dict.get() بدلاً من الفهرسة المباشرة للمفتاح)، وأحطنا استدعاء تحليل EFS بكتلة 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
هذا المشروع لأغراض تعليمية وبحثية فقط. يجب استخدام الأدوات والتقنيات المعروضة هنا فقط على عتاد تملكه. الوصول غير المصرح به إلى أنظمة الكمبيوتر غير قانوني. يهدف هذا البحث إلى تحسين فهم أمن العتاد لأغراض دفاعية.
صُنع بفضول وكافيين. يُظهر هذا المشروع أن أبحاث أمن العتاد في متناول الجميع — لا تحتاج إلى معمل أو معدات باهظة الثمن. فقط لابتوب، وإصرار، والأدوات المناسبة.
إذا ساعدك هذا المشروع على فهم أمن العتاد، امنحه نجمة. إذا اكتشفت شيئاً جديداً، افتح issue. لنجعل أبحاث أمن العتاد مفتوحة وفي متناول الجميع.
| الخاصية | القيمة |
|---|
| اللابتوب | Lenovo IdeaPad Gaming 3 15IAH7 (82S9) |
| المعالج | Intel Core i7-12650H (12th Gen Alder Lake) |
| إصدار ME | CSME 16.0.15.1735 |
| طراز ME | Consumer LP |
| تاريخ ME | 2022-02-17 |
| رقم البناء | JMCN48WW |
| PCH | ADL Device 5182, Rev A1 |
| الوحدة | الحجم | الغرض |
|---|
kernel | 106 KB | نواة نظام التشغيل — عقل الكمبيوتر السري |
bup | 312 KB | الإقلاع — أول كود يعمل عند تشغيل الكمبيوتر |
syslib | 148 KB | مكتبة النظام — وظائف نظام التشغيل الأساسية |
loadmgr | 28 KB | مُحمّل الوحدات — يحمّل الوحدات الأخرى ديناميكياً |
vfs | 92 KB | نظام الملفات الافتراضي — يدير التخزين الداخلي لـ ME |
evtdisp | 16 KB | موزّع الأحداث — يعالج المقاطعات والأحداث |
maestro | 16 KB | محرك التنسيق — ينسّق الأنظمة الفرعية |
| الوحدة | الحجم | الغرض |
|---|
crypto | 216 KB | AES/RSA/HMAC — يشفّر كل شيء يلمسه ME |
policy | 36 KB | محرك سياسة الأمان — يقرر ما يمكنك أنت فعله |
fpf | 20 KB | فيوزات الحماية المندمجة — مفاتيح متجذرة في العتاد |
rot.key | 2 KB | مفتاح جذر الثقة — الهوية التشفيرية لـ ME |
mca_boot | 16 KB | مصادقة الإقلاع — يتحقق من سلامة البرنامج الثابت |
mca_srv | 28 KB | أمان وقت التشغيل — يراقب النظام باستمرار |
| الوحدة | الحجم | الغرض |
|---|
heci | 36 KB | واجهة المتحكم المدمج للمضيف — ناقل CPU<->ME |
ipc_drv | 16 KB | الاتصال بين العمليات — رسائل الوحدات |
sec_msg | 4 KB | الرسائل الآمنة — رسائل داخلية مشفرة |
prtc | 8 KB | معالج البروتوكولات — بروتوكولات الاتصال |
smbus | 8 KB | واجهة SMBus — اتصال حساسات العتاد |
busdrv | 8 KB | سائق الناقل — الاتصال الداخلي |
| الوحدة | الحجم | الغرض |
|---|
ptt | 164 KB | Intel PTT — بديل TPM البرمجي |
pm | 16 KB | مدير الطاقة — حالات النوم/الاستيقاظ |
pmdrv | 12 KB | سائق إدارة الطاقة |
fwupdate | 36 KB | تحديث البرنامج الثابت — يحدّث ME بصمت |
storage | 72 KB | تخزين الفلاش — يقرأ/يكتب SPI flash |
gpio | 8 KB | متحكم GPIO — التحكم في الدبابيس الفيزيائية |
| الوحدة | الحجم | الغرض |
|---|
intl.cfg | 18 KB | إعدادات Intel — إعدادات المنصة |
FTPR.man | 1 KB | قائمة البرنامج الثابت — بيانات تعريف السلامة |
fitc.cfg | 0 KB | إعداد أداة صورة الفلاش (عنصر نائب فارغ) |
intl.cfg.met | 72 B | مجموع اختباري لبيانات تعريف الإعدادات |
| ميزة الأمان | الحالة | المعنى |
|---|
| FPF Committed | نعم | فيوزات لمرة واحدة محروقة بشكل دائم |
| PCH Unlocked | معطّل | قفل على مستوى العتاد نشط |
| Flash Protection | محمي | SPI flash مقفلة ضد الكتابة |
| BootGuard Profile | 3 (كامل) | أقصى تحقق من الإقلاع |
| Measured Boot | مفعّل | كل مكوّن من مكونات الإقلاع يتم تجزئته |
| NVAR Config | مقفلة | لا يمكن تغيير الإعدادات |
| EOM Settings | قفل | نهاية التصنيع (End-of-Manufacturing) مقفلة |
| FWUpdate Support | لا | تحديثات البرنامج الثابت معطلة |
| CPU Debugging | مفعّل | يمكن لـ Intel تصحيح الأخطاء (لا يمكنك أنت) |
| الأداة | الغرض |
|---|
| heci_spy.py 🔥 | HECI Spy الخاص بنا — تحدث إلى Intel ME مباشرة، بدون تبعيات |
| Intel MEInfoWin64 v16.1 | استعلام عتاد ME الحيّ |
| Intel FPTW64 v16.1 | تفريغ SPI flash الحيّ |
| Intel MEManufWin64 v16.1 | اختبارات ذاتية للتصنيع |
| MEAnalyzer v1.311.0 | تحليل بيانات تعريف البرنامج الثابت |
| Radare2 6.1.8 | تفكيك ثنائي |
| Python 3.14 | سكربتات تحليل مخصصة |
| Ghidra 11.3.2 | هندسة عكسية للبرنامج الثابت |