
إثبات مفهوم (PoC) لثغرة CVE-2024-56426.
أدوات موحّدة لـ CVE-2024-56426 لعائلات Exynos 990 Galaxy S20 و S20 FE و Note20. يقبل الاستغلال جميع أسماء الطرازات العشرة ويقوم بتعيينها إلى ست عائلات مُتحقَّق منها من محمّلات الإقلاع الأصلية.
[!CAUTION] حزمة المفاتيح المتتبَّعة والصور المُولَّدة قادرة على الدمج (fusing). الدمج لا رجعة فيه. الهاتف المدمج بمفتاح معيّن لا يمكنه الإقلاع إلا بصور متوافقة مع ذلك المفتاح. طراز خاطئ، أو مراجعة rollback، أو مجموعة تصحيحات، أو حزمة مفاتيح خاطئة قد تترك الجهاز في حلقة إقلاع مدمجة. استخدم مفاتيح التطوير وحمولة UFS أثناء التكرار. أضف
--no-fuseإلى كل أمر تحضير/توقيع ما لم يكن دمج المفاتيح المخصّصة مقصودًا صراحةً.
يتحكّم الطراز المحدَّد في كلٍّ من معرّف طراز BL1 وملف TSV لتصحيح LK الخاص بالطراز الدقيق. يتحكّم Runtime artifact في
أي برنامج ثابت أصلي وصور مقسّمة مشفّرة يستخدمها الفحص المسبق. الأعلام الأربعة غير المتوافقة مع 5G والتي تستخدم
مصنوعات وقت تشغيل 5G المقترنة تقوم أيضًا بتصحيح فحص معرّف الطراز في LK ومسار برمجة معرّف الطراز.
[!IMPORTANT] في إصدارات البرنامج الثابت الأصلية المذكورة أدناه، لا يمكن لـ G780F و N980F و N981B و N985F و N986B استخدام طريقة UH-to-BOOTLOADER للدخول إلى EUB. تستدعي محمّلات إقلاع LK الخاصة بها
Check_signinfo()، التي تقارنBinaryNameالمضمَّن في الصورة (uh.bin) مع اسم الملف المتوقَّع لقسم BOOTLOADER (sboot.bin). يُنتج عدم التطابقBinaryname has changed (uh.bin) -> (sboot.bin)ويرفض عملية الفلاش.استخدم نقاط الاختبار المناسبة لكل طراز للدخول إلى EUB على هذه الأجهزة بدلًا من طريقة UH.
| علم الطراز | مصنوع وقت التشغيل | البرنامج الثابت لوقت التشغيل | معرّف الطراز | EVT | Rollback | مُختبَر | طريقة UH / الدخول إلى EUB |
|---|---|---|---|---|---|---|---|
G780F | G780F | G780FXXSOFYJ1 | 0x154 | 11 | 24 | ❌ | محظور — استخدم نقاط الاختبار |
G980F | G981B | G981BXXSNHYB1 | 0x143 | 11 | 23 | ✅ | لا يوجد حظر لاسم الملف |
G981B | G981B | G981BXXSNHYB1 | 0x13D | 11 | 23 | ❌ | لا يوجد حظر لاسم الملف |
G985F | G986B | G986BXXSNHYB1 | 0x142 | 11 | 23 | ✅ | لا يوجد حظر لاسم الملف |
G986B | G986B | G986BXXSNHYB1 | 0x13C | 11 | 23 | ✅ | لا يوجد حظر لاسم الملف |
G988B | G988B | G988BXXSNHYB1 | 0x13E | 11 | 23 | ❌ | لا يوجد حظر لاسم الملف |
N980F | N981B | N981BXXSIHYH3 | 0x153 | 11 | 18 | ❌ | محظور — استخدم نقاط الاختبار |
N981B | N981B | N981BXXSIHYH3 | 0x14E | 11 | 18 | ❌ | محظور — استخدم نقاط الاختبار |
N985F | N986B | N986BXXSIHYH3 | 0x152 | 11 | 18 | ❌ | محظور — استخدم نقاط الاختبار |
N986B | N986B | N986BXXSIHYH3 | 0x14D | 11 | 18 | ❌ | محظور — استخدم نقاط الاختبار |
جميع أعلام الطرازات العشرة المدعومة من Galaxy S20 و S20 FE و Note20 لديها ملف تعريف إقلاع KVM
اختياري عبر سطر الأوامر فقط. ابنِ فرعًا
من نواة Exynos 990
يحتوي اسمه على kvm، وأضف --kvm إلى أمر الطراز الدقيق، على سبيل المثال:
python3 exploit/exploit.py --build-sboot --model G985F --no-fuse --kvm
يزيل هذا الملف التعريفي مسار LK H-Arx/UH، ويطلب من EL3 الدخول إلى النواة عند EL2، ويطبّق جدول تصحيح مراقب EL3 المطابق المُفكَّك التشفير/المُعاد تشفيره. يظل غير متاح لأوضاع فلاش محمّل الإقلاع الأصلية/المتلاعب بها. لا يحتوي مركز التحكم عبر الويب عمدًا على تحكم KVM. مع النواة المطابقة وWindowsInQemu، يمكن تشغيل Windows في QEMU على الهاتف بكامل السرعة عبر KVM.
لا تتعامل مع كل وضع كتسلسل تثبيت مرقّم واحد. اختر هدفًا:
| الهدف | المسار |
|---|---|
| تثبيت ROM مخصص موقّع | الطراز/الإعداد الدقيق → EUB → سلسلة --signed --no-fuse المؤقتة → فلاش مخرجات ROM الموقّعة الكاملة → أول إقلاع من UFS |
| اختبار الاستغلال | اختياري --prepare --no-fuse → EUB → --signed --no-fuse → توقف |
| تطوير سلسلة الإقلاع (CLI فقط) | اختبار مؤقت بدون fuse → بناء → فلاش SBoot/TZSW/LDFW المُولَّد → UFS |
| التفريغ / الاستعادة | استخدم سير العمل المنفصل وفحوصات حالة fuse |
يقوم --prepare بإعداد المضيف فقط: يستبدل صور العمل المُولَّدة ويبني ويوقّع الملفات المحلية،
دون فتح USB. إنه ليس تشغيلًا تجريبيًا للقراءة فقط ولا سلفًا مطلوبًا: يعيد --signed تنفيذ الفحص المسبق.
أمر Heimdall المُولَّد المكوَّن من ثلاثة أجزاء هو أداة تطوير سلسلة الإقلاع؛ وليس فلاش ROM مخصص.
اقرأ USER_GUIDE.md واختر سير العمل المطابق قبل لمس أي جهاز. يتضمن تسليم ROM الكامل بالإضافة إلى قواعد الاستعادة للحالة غير المدمجة والمدمجة وغير المؤكدة.
يستخدم خادم HTTP الخاص بواجهة المتصفح مكتبة Python القياسية ويستدعي واجهة سطر الأوامر الحالية exploit/exploit.py.
يتطلب التحقق من حزمة المفاتيح وتنفيذ الأدوات أيضًا الحزم الموجودة في requirements.txt. يظل تطوير سلسلة الإقلاع
وأمر Heimdall المُولَّد المكوَّن من ثلاثة أجزاء أدوات طرفية فقط.
ابدأه من جذر المستودع:
python3 exynos990_control_center.py
يربط المُشغِّل 127.0.0.1، ويولّد رمز وصول جديد، ويطبع عنوان URL المحلي الكامل، ويفتحه في المتصفح
الافتراضي. استخدم --no-browser عندما لا ينبغي فتح المتصفح تلقائيًا:
python3 exynos990_control_center.py --no-browser
توفر واجهة المستخدم:
كما يعرض إشعار KVM الخاص بـ Exynos 990 الخاص بواجهة سطر الأوامر فقط، لكنه لا يكشف عن خيار KVM عن قصد ولا يمرر --kvm إلى أي
إجراء ويب.
يتبع وصول USB أذونات العملية التي أطلقت مركز التحكم. قم بتهيئة أذونات udev/driver المرفقة قبل تشغيله. لا تطلب واجهة المستخدم بيانات اعتماد الصلاحيات ولا تحتفظ بها ولا تمررها. حافظ على سرية رابط الرمز المطبوع وأوقف الخادم فورًا بعد الاستخدام.
يمكن لمستخدمي الطرفية تجاهل exynos990_control_center.py؛ فكل أمر CLI موثق أدناه يبقى دون تغيير ومدعوم
بالكامل.
يتطلب Python 3.10 أو أحدث.
Windows 10/11 (PowerShell الأصلي):
.\windows\setup.ps1
. .\windows\activate.ps1
python .\exploit\exploit.py --prepare --model G985F --no-fuse
يقوم الإعداد بتثبيت سلسلة أدوات AArch64 أصلية مثبتة، وLZ4، وHeimdall، وبيئة افتراضية للمستودع، ثم يبني جميع الحمولات. يُعدّ برنامج تشغيل BootROM WinUSB اشتراكًا صريحًا من المسؤول لأن شهادته الموقعة ذاتيًا من المصدر الأعلى تغيّر مخازن الثقة في الجهاز. راجع WINDOWS.md للحصول على الإعداد الكامل، وتثبيت برنامج التشغيل، وتمييز وضع التنزيل، والتحقق، وعملية استكشاف الأخطاء وإصلاحها.
بعد تنشيط Windows، استخدم python حيثما تعرض الأمثلة المتبقية متعددة المنصات python3.
Linux: