
مُحاكي Windows لمعمارية Intel x64: مُضيف افتراضي دفاعي لنظام Windows مصمم لتخفيف الهجمات على مستوى النواة بما في ذلك BYOVD، متوافق مع VMware و Hyper-V.
NovaHypervisor هو مشرف افتراضي دفاعي مضمن في المضيف لمعالجات Intel x64. الهدف من هذا المشروع هو الحماية من الهجمات القائمة على النواة (إما عبر Bring Your Own Vulnerable Driver (BYOVD) أو وسائل أخرى) عن طريق حماية منتجات الدفاع (مضادات الفيروسات / حماية نقاط النهاية) وهياكل ذاكرة النواة ومنع الوصول غير المصرح به إلى ذاكرة النواة.
NovaHypervisor مكتوب بلغة C++ و Assembly، وهو مصمم ليكون متوافقًا مع نظام التشغيل Windows 10 والإصدارات الأحدث. يرجى الاطلاع على قسم الإعداد لمزيد من المعلومات حول كيفية استخدامه.
[!IMPORTANT]
تم اختبار المشرف الافتراضي على Windows 11 25H2 وعدة إصدارات من Windows 10. إذا واجهت مشكلة، يرجى فتح مشكلة بعد التحقق من عدم وجود مشكلة مفتوحة بالفعل.
يمكن تشغيل NovaHypervisor تحت هذه المشرفات الافتراضية:
✅ - مدعوم ومُختبر
⌛ - قيد التطوير
❌ - غير مدعوم وغير مخطط لدعمه
| المشرف الافتراضي |
|---|
لاستخدام NovaHypervisor، ستحتاج إلى إنشاء خدمة نواة وتشغيلها:
sc create NovaHypervisor type= kernel binPath= "C:\Path\To\NovaHypervisor.sys"
sc start NovaHypervisor
ثم يمكنك إضافة وإزالة العناوين التي تريد حمايتها باستخدام تطبيق NovaClient:
REM Add an address to protect
NovaClient.exe protect 0x12345678 <r|w|x> <execution hook>
REM Remove an address from protection
NovaClient.exe unprotect 0x12345678
protect: حماية عنوان ذاكرة من الوصول، يمكنك تحديد نوع الحماية:
r: حماية القراءةw: حماية الكتابةx: حماية التنفيذ
الحماية التي تقدمها هي الحماية التي سيكون للعنوان عليها. على سبيل المثال، إذا كنت تريد إزالة صلاحيات التنفيذ، استخدم "rw".unprotect: إزالة الحماية من عنوان ذاكرة.
[!NOTE] خطاف التنفيذ عبر inline hook + EPT hooks غير مدعوم ولن يتم دعمه لهذا المشروع لمنع سوء الاستخدام.
يتطلب إعداد تجميع المشروع أن يكون لديك:
لتشغيل المشرف الافتراضي، ستحتاج إلى تثبيت إصدار Windows 10 أو أحدث على جهازك. ستحتاج أيضًا إلى:
يسجل NovaHypervisor في منفذ تسلسلي ثانٍ (COM2، منفذ الإدخال/الإخراج 0x2F8) باستخدام مسجل COM صغير يمكن تشغيله في مستوى IRQL HIGH_LEVEL وفي مسارات VMX root. يصدر سجلات التصحيح والمعلومات والأخطاء مع بادئة ثابتة NovaHypervisor.
bcdedit /dbgsettings serial debugport:2 baudrate:115200
التقط المخرجات من الأنبوب التسلسلي للمضيف أو نقطة نهاية COM2 المهيأة للجهاز الافتراضي الخاص بك بسرعة 115200 8N1. على سبيل المثال، في PuTTY يمكنك الاتصال بالناقل التسلسلي المهيأ للجهاز الافتراضي ومشاهدة سطور السجل أثناء تشغيل برنامج التشغيل. يمكنك أيضًا استخدام السكربت connect-vm.ps1 للاتصال بمنفذ COM2 للجهاز الافتراضي وعرض السجلات في وحدة التحكم.
لاختباره وتصحيحه في بيئة الاختبار الخاصة بك، قم بتشغيل هذه الأوامر في موجه الأوامر برفع صلاحيات ثم أعد تشغيل جهازك:
bcdedit /set testsigning on
bcdedit /debug on
bcdedit /dbgsettings net hostip:<HOSTIP> port:55000 key:1.2.3.4
حيث <HOSTIP> هو عنوان IP لجهاز المضيف.
| مدعوم |
|---|
| VMware | ✅ |
| Hyper-V | ✅ |
| Hyper-V مع VBS | ⌛ |
| VirtualBox | ❌ |
| QEMU | ❌ |
| KVM | ❌ |