Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

الخلاصاتاتصالالخصوصية© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
SimpleVisor — مراقب افتراضي Intel VT-x بسيط لنظامي Windows وUEFI يقوم بمحاكاة مضيف حي لأغراض الفحص الداخلي، ويدعم الاختطاف الافتراضي الديناميكي وإلغاء الاختطاف الافتراضي وEPT وVPID. | Kitploit
أدوات/GitHubGitHub/ionescu007/simplevisor
الهندسة العكسيةالمحاكاة الافتراضية للأمانتحليل البرمجيات الخبيثةأمن الأجهزةتحليل الملفات الثنائيةالأوراق والأبحاثالتعلم والتعليم
GitHubionescu007/simplevisor

SimpleVisor

مراقب افتراضي Intel VT-x بسيط لنظامي Windows وUEFI يقوم بمحاكاة مضيف حي لأغراض الفحص الداخلي، ويدعم الاختطاف الافتراضي الديناميكي وإلغاء الاختطاف الافتراضي وEPT وVPID.

عرض المستودع
2.0k286منذ 2 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
الموقع الإلكتروني

SimpleVisor

SimpleVisor هو برنامج مراقبة افتراضية (hypervisor) بسيط ومحمول خاص بمعالجات Intel x64/EM64T VT-x، وله هدفان محددان: استخدام أقل قدر ممكن من كود التجميع (10 أسطر)، وامتلاك أصغر قدر ممكن من الكود المرتبط بـ VMX لدعم الاختطاف الافتراضي الديناميكي وإلغاء الاختطاف (أي افتراض حالة المضيف من داخل المضيف) مع دعم ميزات متقدمة مثل EPT وVPID. وهو يعمل حالياً على كل من Windows وبيئات UEFI.

مقدمة

هل كنت دائماً فضولياً لمعرفة كيفية بناء برنامج مراقبة افتراضية؟ هل أرهقتك وثائق Intel (المئات العديدة من الصفحات)؟ هل جعلتك الأمثلة التي وجدتها على الإنترنت أكثر ارتباكاً، أو تطلبت أسابيع من القراءة عبر عشرات الآلاف من الأسطر والكود؟ إذا كان الأمر كذلك، فقد يكون SimpleVisor هو المشروع المناسب لك.

بدون احتساب التعليقات المستفيضة التي تشرح كل سطر من الكود، والخصوصيات المحددة المتعلقة بـ Windows أو Intel، يبلغ حجم SimpleVisor حوالي 500 سطر من كود C، و10 أسطر من كود تجميع x64، مع امتلاكه القدرة على العمل على كل إصدار حديث من Windows بنسخة 64-bit، ودعم التحميل/الإلغاء الديناميكي في وقت التشغيل.

بالإضافة إلى ذلك، يستخدم SimpleVisor مكتبة نظام تشغيل خفيفة الوزن للوظائف الخاصة بـ Windows، مما يفصل أجزاء برنامج المراقبة الافتراضية عن الأجزاء الخاصة بـ Windows. وبالاستفادة من هذا التصميم المحمول، أصبحت نسخة UEFI من SimpleVisor متاحة الآن أيضاً. لاحظ مع ذلك أنها لا تمتلك دعماً قوياً لبيئات MP بسبب مشكلات في UEFI، وأن تحميل نظام تشغيل سيؤدي في النهاية إلى انهيار لأن نظام التشغيل سيصل إلى مسارات كود غير منفذة بسبب إعادة تكوينه لموارد المعالج. إن افتراض عملية الإقلاع الكاملة لنظام التشغيل من UEFI خارج نطاق هذا المشروع.

يمكن بناء SimpleVisor باستخدام Visual Studio 2015 Update 3، ورغم أن المترجمات الأقدم/الأحدث لم يتم اختبارها وغير مدعومة، فمن المحتمل أنها تستطيع بناء المشروع أيضاً. من المهم، مع ذلك، الإبقاء على إعدادات المترجم والرابط المختلفة كما تراها.

تم اختبار SimpleVisor حالياً بنجاح على المنصات التالية:

  • Windows 8.1 على معالج Haswell (حاسوب مكتبي مخصص)
  • Windows 10 Redstone 1 على معالج Sandy Bridge (حاسوب محمول Samsung 930)
  • Windows 10 Threshold 2/Redstone 1 على معالج Skylake (جهاز لوحي Surface Pro 4)
  • Windows 10 Threshold 2 على معالج Skylake (Dell Inspiron 11-3153 مع SGX)
  • VMWare Workstation 11، ولكن بدون EPT (لا يدعم VMWare صفحات EPT بحجم 1GB)
  • UEFI 2.4 على لوحة أم Asus Maximus VII Extreme (حاسوب مكتبي مخصص)

في الوقت الحالي، لم يتم اختباره على Bochs، ولكن لا يوجد سبب يمنع SimpleVisor من العمل في مثل هذه البيئة أيضاً. ومع ذلك، إذا كان جهازك يعمل بالفعل تحت برنامج مراقبة افتراضية مثل Hyper-V أو Xen، فلن يتم تحميل SimpleVisor.

ضع في اعتبارك أن إصدارات x86 من Windows غير مدعومة صراحةً، ولا المعالجات الأقدم من معمارية Nehalem الدقيقة، ولا Windows 7. إن دعم الأخيرين سهل الإضافة وموجود في بعض التفرعات.

الدافع

الكثير جداً من مشاريع برامج المراقبة الافتراضية الموجودة إما معقدة للغاية ([Xen][1]، KVM، VirtualBox) و/أو مغلقة المصدر (VMware، Hyper-V)، فضلاً عن كونها موجهة بشكل كبير نحو التطوير أو الأنظمة القائمة على Linux. بالإضافة إلى ذلك، معظمها (بخلاف Hyper-V) مبني صراحةً لغرض تمكين تنفيذ الأجهزة الافتراضية، وليس افتراض نظام حي قيد التشغيل، من أجل إجراء الاستبطان أو مهام أخرى متعلقة بالأمان عليه.

تبرز بعض المشاريع عن غيرها، مثل [Blue Pill][2] الأصلي من Joanna، أو مشاريع مثل [VirtDbg][3] و[HyperDbg][4]. لسوء الحظ، أصبح معظمها قديماً جداً الآن، وبعضها يعمل فقط على معالجات x86، ولا يدعم أنظمة تشغيل أحدث مثل Windows 10. مثال آخر بسيط إلى حد ما، مشابه لـ Blue Pill في بعض الجوانب، ولكنه يقدم في الواقع مثالاً جيداً على استخدام EPT من أجل "Split-TLB" هو [MoRE][7] من Jacob Torrey/AIS.

أقرب مشروع يقدم في الواقع برنامج مراقبة افتراضية حديثاً ومدعوماً ومركزاً على Windows هو [HyperPlatform][5]، ونوصي بشدة باستخدامه كنقطة انطلاق لتطوير برامج مراقبة افتراضية من نوع البحث الأكثر قابلية للاستخدام على نطاق واسع. ومع ذلك، في محاولة لإنشاء "منصة" عامة أكثر قوة على نطاق واسع، يعاني HyperPlatform أيضاً من بعض التضخم، مما يجعل من الصعب فهم ما هي الاحتياجات الأساسية الحقيقية لبرنامج مراقبة افتراضية، وكيفية تهيئة واحد. وعلى نحو مشابه، ومع إظهار حب مماثل لـ STL/C++، ولكن مع تضمين محمّل ELF ودعم UEFI/Linux إلى جانب اختبارات الوحدة والمزيد من القوة، يأتي [Bareflank][8]، أيضاً من AIS. وبعد ذلك، من المحتمل أن تدخل في تعقيد بمستوى Xen.

كان الهدف الصريح لهذا المشروع، كما ذُكر أعلاه، هو تقليل الكود بأي طريقة ممكنة، دون التسبب في آثار جانبية سلبية، والتركيز على احتياجات "العتاد المجرد". ويشمل ذلك:

  • تقليل استخدام كود التجميع. لولا عدم وجود __lgdt intrinsic، وحل بديل لسلوك إحدى واجهات Windows API، لما تطلب الأمر سوى أول 4 تعليمات من نقطة دخول برنامج المراقبة الافتراضية إلى كود التجميع. وكما هو الحال الآن، يحتوي المشروع على إجمالي 10 تعليمات، موزعة على 3 دوال. وهذا خروج هائل عن مشاريع برامج المراقبة الافتراضية الأخرى، التي غالباً ما تحتوي على مئات عديدة من أسطر كود التجميع. تُستخدم مجموعة متنوعة من الحيل الخاصة بنظام التشغيل واختصارات المترجم لتحقيق هذه النتيجة.
  • تقليل فحوصات الأخطاء التي من غير المرجح حدوثها. بالنظر إلى مجموعة بيانات إدخال موثوقة ومُهيأة بشكل صحيح، فإن تعليمات مثل vmx_vmwrite وvmx_vmread يجب ألا تفشل أبداً، على سبيل المثال.
  • إزالة دعم x86، الذي يعقد الأمور ويسبب معالجة خاصة حول حقول 64-bit.
  • تقليل جميع مخارج VM-Exit الممكنة صراحةً إلى الحد الأدنى المعرّف معمارياً من Intel فقط (CPUID، INVD، تعليمات VMX، وXSETBV). ويتم ذلك عن قصد لإبقاء برنامج المراقبة الافتراضية صغيراً قدر الإمكان، وكذلك كود التهيئة.
  • لا دعم لـ VMCALL. تستخدم العديد من برامج المراقبة الافتراضية VMCALL كطريقة للخروج من برنامج المراقبة الافتراضية، مما يتطلب برمجة بلغة التجميع (لا يوجد intrinsic) ومعالجة إضافية للمخارج. يستخدم SimpleVisor فخ CPUID بدلاً من ذلك.
  • الاعتماد على دوال نظام تشغيل غير معروفة كثيراً لتبسيط تطوير برنامج المراقبة الافتراضية، مثل Generic DPCs وسياقات الإسبات (hibernation contexts) على Windows، أو بروتوكول PI MP على UEFI.
  • دعم EPT/VPID بطريقة بسيطة جداً، لإظهار أساس متين لأبسط تنفيذ ممكن لهذه الميزة.
  • قابلية النقل وعزل الروتينات الخاصة بنظام التشغيل.

كان هناك هدف ضمني آخر هو دعم أحدث ميزات العتاد، حيث حتى [Bochs][6] لا يمتلك دائماً أحدث تعليمات و/أو تعريفات Intel VMX. غالباً ما توجد هذه في ملفات رأس مثل "vmcs.h" و"vmx.h" التي تمتلكها مشاريع مختلفة بمستويات مختلفة من التعريف. على سبيل المثال، يمتلك Xen master بعض أسباب VM Exit غير المُصدَرة، ولكن ليس بعض الأسباب المُصدَرة المؤكدة، والتي يمتلكها Bochs، رغم أنه لا يمتلك الأسباب غير المُصدَرة! أحد الأمثلة على ذلك هو استخدام مدخلات EPT بحجم 1GB، والتي على سبيل المثال لا يقوم VMWare بافتراضها بشكل صحيح.

أخيراً، يُقصد بـ SimpleVisor أن يكون أداة تعليمية -- فهو يحتوي على تعليقات مستفيضة تشرح كل المنطق وراء كل سطر من الكود، ونصائح وحيل محددة تتعلق بـ Windows أو Intel VMX التي تسمح له بتحقيق النتيجة المرجوة. يتم الإشارة صراحةً إلى أخطاء متنوعة أو سلوكيات موثقة بشكل سيئ.

التثبيت على Windows

نظراً لأن x64 Windows يتطلب توقيع جميع برامج التشغيل، يجب عليك توقيع ثنائي SimpleVisor توقيعاً اختبارياً. يمكن إعداد ملف مشروع Visual Studio للقيام بذلك باستخدام خيارات "Driver Signing" وتمكين "Test Sign" باستخدام شهادتك الخاصة. من واجهة المستخدم، يمكنك أيضاً إنشاء شهادتك الخاصة.

ثانياً، يجب عليك تمكين وضع التوقيع الاختباري (Test Signing Mode) على جهازك. للقيام بذلك، ابدأ بالإقلاع إلى UEFI لإيقاف "Secure Boot"، وإلا لا يمكن تمكين وضع التوقيع الاختباري. بدلاً من ذلك، إذا كنت تمتلك شهادة KMCS صالحة، يمكنك "Production Sign" لبرنامج التشغيل لتجنب هذا الشرط.

لإعداد وضع التوقيع الاختباري، يمكنك استخدام الأمر التالي:

bcdedit /set testsigning on

بعد إعادة التشغيل، يمكنك بعد ذلك إعداد إدخالات Service Control Manager المطلوبة لـ SimpleVisor في السجل باستخدام الأمر التالي:

sc create simplevisor type= kernel binPath= "<PATH_TO_SIMPLEVISOR.SYS>"

يمكنك بعد ذلك تشغيل SimpleVisor باستخدام

sc start simplevisor

وإيقافه باستخدام

sc stop simplevisor

يجب أن تمتلك صلاحيات إدارية لاستخدام أي من هذه الأوامر.

المراجع

إذا كنت ترغب في معرفة المزيد عن بحثي أو عملي، فأنا أدعوك للاطلاع على مدونتي على http://www.alex-ionescu.com وكذلك شركتي للتدريب والاستشارات، Winsider Seminars & Solutions Inc.، على http://www.windows-internals.com.

https://github.com/upring/virtdbg

http://xenbits.xen.org/gitweb/?p=xen.git;a=summary

https://github.com/svn2github/bochs

https://github.com/rmusser01/hyperdbg

تنزيل الأداة