سؤال

اعتدت على تصحيح أخطاء Windows Kernel باستخدام VirtualKD, WinDBG وجهاز افتراضي واحد.

لقد حصلت مؤخرًا على جهاز Linux، والآن أتساءل- ما هي أسهل طريقة لتصحيح أخطاء Windows Kernel عندما يكون مضيفك غير قادر على التشغيل فيرتوالكد/ويندبج*?

أفترض أن الحل سيتطلب جهازين ظاهريين، لكنني أفضل استضافة مثيلين على جهازي الفعلي بدلاً من وجود مثيل داخل مثيل افتراضي آخر...

هل هناك أي طريقة لجعل هذا العمل؟

شكرا لك مقدما!

*النبيذ هو الملاذ الأخير لأسباب الاستقرار..

هل كانت مفيدة؟

المحلول

تم حلها!في الأساس، انتهى بي الأمر باستخدام اثنين (الصندوق الافتراضي) أجهزة افتراضية محاكاة أ اتصال تسلسلي (كبل مودم فارغ) عبر أ مقبس مجال يونكس (على المضيف).لمزيد من المعلومات، اقرأ أدناه:

إعداد الأجهزة*:

  • مصحح الأخطاء:
    • تأكد من إيقاف تشغيل الجهاز وتحريره المنافذ التسلسلية إعدادات.
    • يُمكَِن المنفذ 1, ، وتعيين القيم على النحو التالي:رقم المنفذ: كوم1, وضع المنفذ: أنبوب المضيف, إنشاء الأنابيب: غير محدد (العميل)، مسار المنفذ/الملف: /tmp/win_link.
  • المصحح:
    • كما هو مذكور أعلاه (باستخدام نفس المسار)، يجب أن يكون إنشاء الأنبوب هذه المرة فقط التحقق (الخادم).

إعداد المصحح:

  • قم بتشغيل WinDBG واضغط على Ctrl+K للاستدعاء تصحيح أخطاء النواة.
  • في كوم, ، يدخل:معدل الباود:115200، الميناء:COM1، إعادة الضبط:0 والتحقق من ذلك يضخ وإعادة الاتصال هي غير محدد (مهم).
  • سيتم تقديمك مع الإخراج التالي: Opened \\\\.\com1 Waiting to reconnect...

إعداد مصحح الأخطاء:

  • يجري bootcfg /debug on /port com1 /baud 115200 /id 1.للتحقق، تشغيل bootcfg.**
  • اعادة التشغيل.
  • في وقت مبكر جدًا أثناء مرحلة التمهيد، يجب أن يكتشف WinDBG الموجود على الجهاز الآخر أن مصحح الأخطاء قيد التشغيل.

* بافتراض استخدام VirtualBox.من المحتمل أن يتمكن مستخدمو VMWare/KVM من تحقيق نفس النتائج باتباع خطوات مماثلة.وأيضا لمزيد من المعلومات راجع مستندات VirtualBox.

**بافتراض أن الضيوف هم نظام التشغيل Windows XP.تتضمن الإصدارات اللاحقة bcdedit، والذي يمكن استخدامه كما هو موضح هنا.

نصائح أخرى

بالنسبة إلى QEMU\KVM، اتبع هذه التعليمات:http://www.linux-kvm.org/page/WindowsGuestDrivers/GuestDebugging

مفيد جدًا ولكنه ينطبق على أجهزة Windows XP.يمكنك الرجوع إلى الرابط التالي إذا كنت بحاجة إلى تكوين جهازين ظاهريين يعملان بنظام التشغيل Windows7 على مضيف Linux: http://www.aldeid.com/wiki/Category:Digital-Forensics/Computer-Forensics/Debugger/Kernel

هناك خيار آخر في الوقت الحاضر وهو تمكين تصحيح أخطاء kernel المحلي.وهذا يأتي مع بعض محددات, ومع ذلك فإنه سيمكنك من الوصول إلى بيانات النواة أثناء الاستخدام فقط واحد جهاز افتراضي.

يعمل هذا الأسلوب فقط على نظامي التشغيل Windows 8.0 وWindows Server 2012 والإصدارات الأحدث.

اتبع الخطوات التالية:

  1. افتح نافذة موجه الأوامر كمسؤول.
  2. يدخل bcdedit /debug on
  3. إذا لم يتم تكوين الكمبيوتر بالفعل كهدف لنقل التصحيح، فأدخل bcdedit /dbgsettings local
  4. إعادة تشغيل الكمبيوتر.

بمجرد إعادة تشغيل النظام، يمكنك التنفيذ WinDBG مثل Administrator, ، يضعط ctrl+k او اذهب الى File -> Attach to kernel -> Local واضغط على موافق.

Attach to Kernel Option

عند هذه النقطة، سوف تكون قادرًا على تنفيذ أوامر kernel فقط والوصول إلى هياكل kernel:

enter image description here

تم اختباره تحت نظام التشغيل Windows 10 ومع إصدار WinDBG الجديد (معاينة).

مرجع: إعداد تصحيح أخطاء Kernel المحلي لجهاز كمبيوتر واحد يدويًا

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top