Efiguard هو محمول X64 UEFI Bootkit يقوم بتصحيح Windows Boot Manager و Boot Loader و kernel في وقت التمهيد من أجل تعطيل تطبيق PatchGuard و Signature Signature (DSE).
إذا كنت تتطلع فقط إلى تجربة efiguard ، تخطي إلى الاستخدام.
يدعم حاليًا جميع الإصدارات المتوافقة مع EFI من Windows X64 التي تم إصدارها على الإطلاق ، من Vista SP1 إلى Windows 11.
سهل الاستخدام: يمكن تشغيله من عصا USB أو قسم Windows EFI عبر محمل يجد Windows و Boots تلقائيًا. يمكن أيضًا تحميل برنامج التشغيل وتكوينه يدويًا باستخدام إما قذيفة UEFI أو المحمل.
الاستفادة من مكتبة Zydis disassembler من أجل فك تشفير تعليمات وقت التشغيل السريع لدعم تحليل أكثر قوة مما هو ممكن مع مطابقة التوقيع ، والذي يتطلب غالبًا تغييرات مع تحديثات نظام التشغيل الجديد.
يعمل بشكل سلبي: لا يقوم برنامج التشغيل بتحميل أو بدء تشغيل Windows Boot Manager. بدلاً من ذلك ، يعمل على تحميل من bootmgfw.efi بواسطة مدير التمهيد الثابت عبر قائمة اختيار التمهيد أو تطبيق EFI مثل المحمل. إذا تم تشغيل نظام تشغيل غير Windows ، فسيقوم برنامج التشغيل تلقائيًا بتفريغ نفسه.
يدعم الترقيع من أربع مراحل عندما تبدأ bootmgfw.efi bootmgr.efi بدلاً من winload.efi . هذا هو الحال عندما يتم تحميل ملف WIM للتمهيد Winpe أو Windows Setup أو Windows Recovery Mode.
الاسترداد الرشيق: في حالة فشل التصحيح ، سيعرض برنامج التشغيل معلومات الخطأ ويطالب بمتابعة التمهيد أو إعادة التشغيل عن طريق الضغط على ESC. هذا صحيح حتى حتى مرحلة تصحيح kernel النهائية ، لأن مرحلة التصحيح الأخيرة تحدث قبل أن تسمى ExitBootServices . العديد من uefi windows bootkits ربط OslArchTransferToKernel والتي ، على الرغم من سهلة العثور عليها من خلال مطابقة الأنماط ، هي وظيفة تنفذ في الوضع المحمي بعد ExitBootServices . هذا يعني عدم توفر خدمات التمهيد لإخبار المستخدم أن هناك خطأ ما. في حين أن efiguard هو uefi bootkit ، فإنه لم يبدأ كواحد. كان efiguard في الأصل عبارة عن مصلح على القرص على NT (على غرار Upgdsed) ، ويهدف إلى اختبار صلاحية Aproach القائمة على disassembler ، بدلاً من استخدام رموز PDB والتوقيعات الخاصة بالإصدار. لا يزال patchntoskrnl.c يشبه إلى حد كبير هذا التصميم الأصلي. فقط بعد أن أثبت هذا النهج نجاحه ، مع عدم وجود تعديلات على التعليمات البرمجية اللازمة منذ أكثر من عام من تحديثات Windows ، هل دخل UEFI في الصورة كوسيلة لزيادة تحسين القدرات وسهولة الاستخدام.
تشمل بعض الفوائد التي توفرها نهج BootKit:
bcdedit .ImgpValidateImageHash (على الرغم من أن هذا لا يزال يتم اختياريا).db . كان التجسد الأولي لـ efiguard كحزب bootkit محاولة للحصول على UEF-Bootkit من UEF-CONTERS 719 للعمل مع الإصدارات الحديثة من نظام التشغيل Windows 10 ، لأنها أصبحت مؤرخة ولم تعد تعمل على أحدث الإصدارات (مثل الصعود ، وغالبًا ما تسببت في عمليات مسح أنماط الإصدار). على الرغم من أنني قد حصلت في نهاية المطاف على هذا العمل ، إلا أنني لم أكن راضية عن النتيجة بسبب اختيار التثبيت على OslArchTransferToKernel ، والتي يتم تنفيذها أعلاه في الوضع المحمي وبعد أن تم استدعاء ExitBootServices . بصرف النظر عن هذا ، لم أكن راضيًا عن القدرة على تصحيح بعض إصدارات Windows 10 ؛ أردت أن تعمل BootKit على كل إصدار متوافق مع EFI من Windows X64 الذي تم إصداره حتى الآن. لهذا السبب ، أعيد كتابة bootkit من الصفر مع الأهداف التالية:
يتم عرض نظرة عامة كبيرة على الصورة على تدفق التمهيد Efiguard النهائي في الرسم البياني أعلاه. للاطلاع على السنانير والبقع الخاصة بالمكون الفردي ، راجع EfiGuardDxe/PatchXxx.c في الملفات المصدر. للاطلاع على تهيئة/تفريغ برنامج التشغيل ، و efi boot و services services ، راجع efiguarddxe.c.
Efiguard مرخصة بموجب GPLV3. يتم ترخيص الملفات الموجودة في الجهاز الفرعي EfiGuardDxe/Zydis بموجب ترخيص MIT.