
تنفيذ لـ baton drop (CVE-2022-21894) من أجل armv7 (MSM8960)
نظرًا لأن إصلاح policyhax (المعروف أيضًا بـ golden key) يعمل فعليًا على أنظمة Qualcomm، فقد حصلت على جهاز Dell XPS 10 يعمل ولكنه يُباع كقطع غيار لنقل baton drop إلى MSM8960.
هذه هي النتيجة.
قم باستخراج image.7z إلى جهاز USB مهيأ بنظام FAT32 وGPT، وانسخ تطبيق الإقلاع EFI غير الموقع إلى \boot.efi، ثم قم بتشغيل جهاز MSM8960 الذي يعمل بنظام Windows RT به، واستمتع.
جميع مصادر الحمولة (بما في ذلك divide.obj من MS CRT الذي يتطلبه stage2) مضمنة. للبناء، استخدم موجه أوامر المترجم المتقاطع MSVC. قم بتشغيل make_cert.bat لإنشاء شهادة موقعة ذاتيًا، وbuild_mcupdate.bat لبناء stage1، وbuild_stage2.bat لبناء stage2، وbuild_boot.bat لبناء boot.efi الخاص بـ hello world.
0xA000_0000. ربما يمكن تعيينها لاحقًا إذا أردت استخدام baton drop فقط لكسر حماية UMCI (عند استغلال baton drop، تظهر قائمة الخيارات المتقدمة خيار nointegritychecks)؛ تذكر أنه على win8.x يتطلب الاستغلال أن يكون osdevice وحدة تخزين مشفرة بـ BitLocker مع تعيين بت العلم 0 على المفتاح (يمكن تعيينه يدويًا كما هو الحال في payload.vhd، ولكن يتم تعيينه عادةً لـ VMK مختوم بـ TPM مع إقلاع آمن للتحقق من السلامة).
0xC000_0000 يعمل لتحميل حمولة بواسطة baton drop، ولكن في حالة الإقلاع المزدوج سيتسبب في فشل إقلاع NT.hal.dll لإضافة mcupdate.dll إلى وارداتها، وهي موقعة ذاتيًا.mcupdate.dll بتحميل efiesp:\stage2.dll وefiesp:\boot.efi، ويحصل على جميع المؤشرات التي يحتاجها stage2 ويستدعي نقطة الدخول لـ stage2.BlpArchSwitchContext للتبديل إلى سياق البرامج الثابتة لاستدعاء خدمات EFI