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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
BugChecker — مصحح نواة يشبه SoftICE لنظام Windows 11 | Kitploit
أدوات/GitHubGitHub/vitoplantamura/bugchecker
التحليل الديناميكي (عزل)الهندسة العكسيةمصممي الأخطاءتحليل الملفات الثنائية
GitHubvitoplantamura/bugchecker

BugChecker

مصحح نواة يشبه SoftICE لنظام Windows 11

عرض المستودع
1.1k14417منذ 3 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

BugChecker

مقدمة

BugChecker هو مصحح أخطاء kernel ومستخدم يشبه SoftICE لنظام Windows 11 (ويدعم أيضًا Windows XP: فهو يدعم إصدارات Windows من XP إلى 11، لكل من x86 وx64). لا يتطلب BugChecker جهازًا ثانيًا متصلًا بالنظام الذي يتم تصحيحه، كما هو الحال في WinDbg وKD. تستفيد هذه النسخة من BugChecker (على عكس النسخة الأصلية التي تم تطويرها قبل 20 عامًا) من واجهة برمجة التطبيقات الداخلية غير الموثقة KD في NTOSKRNL. تسمح واجهة برمجة التطبيقات KD لـ WinDbg/KD بإجراء استدعاءات مثل قراءة/كتابة الذاكرة الظاهرية، قراءة/كتابة السجلات، وضع نقطة توقف في عنوان، إلخ.

على النقيض من ذلك، كان BugChecker الأصلي، مثل SoftICE، "يستولي" على النظام عن طريق ربط العديد من واجهات برمجة التطبيقات kernel (سواء المصدرة أو الخاصة)، والتحكم في APIC، وإرسال IPIs، إلخ. هذا النهج يزيد من التعقيد بشكل هائل (ويقلل من استقرار النظام)، حيث يجب أن يكون التنفيذ متوافقًا مع جميع الإصدارات والإصدارات الفرعية المدعومة من Windows (على مستوى توقيع الوظيفة) بالإضافة إلى جميع تكوينات الأجهزة المدعومة الممكنة. علاوة على ذلك، بعد 20 عامًا، يجعل PatchGuard هذا الحل مستحيلًا.

على النقيض من ذلك، تقدم هذه النسخة من BugChecker نفسها للجهاز الذي يتم تصحيحه كنظام ثانٍ يقوم بتشغيل مصحح أخطاء kernel خارجي، عن طريق اعتراض استدعاءات KdSendPacket وKdReceivePacket في kernel، ولكن في الواقع، كل شيء يحدث على نفس الجهاز. عادةً ما يتم تحقيق ذلك عن طريق استبدال KDCOM.DLL (وهي الوحدة التي تنفذ اتصال الكابل التسلسلي لواجهة برمجة التطبيقات KD في Windows) وبدء تشغيل النظام في وضع تصحيح أخطاء kernel. هذا النهج (المستوحى من VirtualKD) يقلل من التعقيد ويزيد من الاستقرار والتوافق (وقابلية النقل، على سبيل المثال، إلى ARM - والنمطية، حيث يتم تنفيذ قدرات مصحح الأخطاء منخفضة المستوى خلف KdXxxPacket ويمكن استبدالها بتنفيذ مخصص). علاوة على ذلك، فإن وجود مصحح أخطاء kernel في وقت التمهيد (وإن كان "مزيفًا") يجعل Windows يعطل PatchGuard.

في الوقت الحالي، يتطلب BugChecker لوحة مفاتيح PS/2 للإدخال ومخزن إطارات خطي لكتابة مخرجاته. يرجى ملاحظة أن لوحة المفاتيح المدمجة في العديد من أجهزة الكمبيوتر المحمولة الحديثة لا تزال PS/2.

الميزات

  • دعم Windows XP حتى Windows 11، x86 وx64، ونوى SMP. دعم عمليات WOW64 على x64.
  • تكامل QuickJSPP، وهو منفذ QuickJS إلى MSVC++. قبل استدعاء QuickJS، يحفظ BugChecker حالة FPU (على x86) ويحول إلى مكدس موسع بحجم 128 كيلوبايت.
  • الأوامر تقبل تعبيرات JS. على سبيل المثال، "U rip+rax*4" و "U MyJsFn(rax+2)" هما أمران صالحان. يمكن تعريف وظائف مخصصة في نافذة البرنامج النصي. يتم الإعلان عن سجلات وحدة المعالجة المركزية كمتغيرات نطاق عامة تلقائيًا بواسطة BugChecker.
  • دعم ملفات رموز PDB. يمكن تحديد ملفات PDB يدويًا أو يمكن لـ Symbol Loader تنزيلها من خادم الرموز.
  • يمكن لرمز JavaScript استدعاء الوظائف غير المتزامنة التالية: WriteReg, ReadMem, WriteMem.
  • يمكن أن تحتوي نقاط التوقف على شرط JS: إذا كان الشرط يساوي 0، فلن يحدث "اختراق". هذا يسمح بتعيين "Logpoints" ونقاط توقف يمكنها تغيير تدفق التنفيذ.
  • نافذة السجل تعرض الرسائل المرسلة إلى مصحح أخطاء kernel (على سبيل المثال رسائل DbgPrint).
  • نافذة JavaScript مع تمييز بناء الجملة.
  • مفتاح التبويب يسمح، مع بضعة أرقام، بالتنقل عبر جميع الأرقام السداسية العشرية على الشاشة، أو مع بضعة أحرف، بالتنقل عبر جميع الرموز التي تحتوي على تلك الأحرف.
  • EASTL و coroutines C++20 يجعلان إنشاء أوامر جديدة أمرًا سهلاً. لا تتردد في إرسال طلبات السحب الخاصة بك!

فيديوهات (يوتيوب)

عرض توضيحي لـ BugChecker على Windows 11 22H2، داخل VirtualBox 7.0.4. تمت كتابة شرط نقطة توقف JavaScript يغير تدفق التنفيذ في خيط وضع المستخدم.

شاهد الفيديو

BugChecker يعمل في بيئة مقيدة للغاية: Raspberry Pi 4 (ذاكرة 4 جيجابايت)، عبر QEMU على Windows XP (ذاكرة 512 ميجابايت). يتم استخدام نقطة توقف لتسجيل جميع استدعاءات SYSENTER من وضع المستخدم إلى kernel. يتم تخزين فهرس الخدمة في مصفوفة JavaScript.

شاهد الفيديو

تشغيل BugChecker مباشرة على الأجهزة الحقيقية، على كمبيوتر HP Pavilion Dv2000، وهو كمبيوتر قديم بلوحة مفاتيح PS/2. نظام التشغيل هو Windows 7 Home 32 بت.

شاهد الفيديو

تعليمات التثبيت

مقدمة

تأكد من تعطيل التمهيد الآمن عند تثبيت واستخدام BugChecker. يمكنك عادةً إعادة تمكينه لاحقًا. إذا كنت تستخدم VMware أو VirtualBox، يمكن تعطيل التمهيد الآمن في إعدادات الجهاز الظاهري.

ضع في اعتبارك أيضًا تمكين قائمة التمهيد القديمة، إذا كنت تستخدم Windows 8 أو 10 أو 11، باستخدام الأمر: bcdedit /set "{current}" bootmenupolicy legacy. يسمح ذلك بتجربة أكثر سلاسة أثناء التمهيد، من خلال السماح بتحديد خيار تمهيد BugChecker ثم تعطيل فرض توقيع برنامج التشغيل في نفس الوقت.

التعليمات

الخطوة الأولى هي بدء تشغيل Symbol Loader:

Symbol Loader

إذا لزم الأمر، قم بتعطيل برامج تشغيل العرض، بالنقر فوق الزر "Disable Display Drvs". يمكن أيضًا القيام بنفس الشيء في إدارة أجهزة Windows. بعد تعطيل برامج تشغيل العرض، تظل معطلة حتى بعد إعادة تشغيل النظام. يمكن إعادة تمكينها في أي وقت لاحق عند عدم استخدام BugChecker.

النقطة هنا هي أن BugChecker يحتاج إلى مخزن إطارات خطي بتنسيق 32 بت لكل بكسل، لرسم واجهته. عند تعطيل برامج تشغيل العرض، يقوم Windows بإلغاء تسريع الأجهزة لرسم واجهة المستخدم الخاصة به ويعود إلى وضع التوافق VGA. إذا كنت تعمل على أجهزة حقيقية أو VMware، فيجب عليك تعطيل برامج تشغيل العرض. إذا كنت تعمل على VirtualBox، فيجب عليك تعطيل برامج تشغيل العرض أو تعيين إعداد vm_screen في BugChecker.dat، كما هو موضح أدناه. إذا كنت تعمل على QEMU، فلن تحتاج إلى تعطيل برامج تشغيل العرض ولكن تأكد من تحديد جهاز العرض "-vga std".

لاحظ أن وضع التوافق VGA قد يحد من دقة الشاشة القصوى. VMware مقيد بدقة قصوى تبلغ 1152x864. QEMU مع جهاز العرض "-vga std" لا يعاني من هذا القيد.

ومن المثير للاهتمام، إذا تم تثبيت BugChecker على نظام يحتوي على أكثر من بطاقة رسوميات واحدة، فمن الممكن تعطيل برامج تشغيل العرض لبطاقة رسوميات واحدة فقط، والتي ستكون البطاقة المتصلة بالشاشة التي ستعرض واجهة مستخدم BugChecker. ستحتفظ البطاقة الثانية (المعينة كشاشة رئيسية) بجميع ميزات تسريع 2D و 3D الخاصة بها، بما في ذلك دعم OpenGL و DirectX (ملاحظة: تم اختباره على VMware، مع Windows 11 وشاشة DisplayLink).

ثم انقر فوق "Start Driver"، ثم فوق "Auto Detect" وأخيراً فوق "Save". يجب أن يكون "Auto Detect" قادراً على تحديد العرض والارتفاع والعنوان الفعلي وطول الخطوة للمخزن المؤقت للإطارات تلقائياً. ومع ذلك، يمكنك تحديد هذه الإعدادات يدويًا (لا تنس النقر فوق "Save" عند الانتهاء). إذا كان "Stride" يساوي 0، فسيتم حسابه على أنه "Width" * 4 تلقائياً عند بدء تشغيل برنامج التشغيل. يمكن الحصول على "Address" (أي العنوان الفعلي للمخزن المؤقت للإطارات) في إدارة أجهزة Windows، من خلال النقر على "Properties" لجهاز العرض، ضمن علامة التبويب "Resources".

ثم انقر فوق "Callback" في قسم "KDCOM Hook Method"، ثم فوق "Copy/Replace Kdcom" وأخيراً يمكنك إعادة تشغيل النظام.

يجب القيام بهذه العملية مرة واحدة فقط ويمكن إعادة تمكين برامج تشغيل العرض، إذا لزم الأمر. عند استخدام BugChecker، يجب تعطيل برامج تشغيل العرض مرة أخرى، إذا كان ذلك مطلوبًا بواسطة التكوين الخاص بك.

إعداد vm_screen لـ VirtualBox (تجريبي)

يسمح إعداد vm_screen في BugChecker.dat بفتح واجهة مستخدم مصحح أخطاء BugChecker في VirtualBox دون تحديد دقة الشاشة مسبقًا في Symbol Loader ودون تعطيل برامج تشغيل العرض.

تنزيل الأداة