سؤال كيف يمكنني استفزاز Windows لتعليق (تجميد)؟


أحتاج إلى اختبار سلوك الجهاز في حالة قيام Windows الصعب معلقة / تجمد (على سبيل المثال ، شاشة مجمدة ، لا توجد لمبات LED ، أو أي تفاعل مع المدخلات ، بما في ذلك CTRL + ALT + ديل، وما إلى ذلك). من أجل الحصول على ما يكفي من التجارب في وقت قصير بشكل معقول ، أحتاج إلى بدء هذه المعلقة إما برمجيًا أو بخلاف ذلك.

ان مهتم ب ويندوز 10 على وجه الخصوص ولكن هو محل تقدير أي طريقة عمل للإصدارات الأخرى.

كل بحث قمت به حول هذا الموضوع لا يقودني إلى مناقشات حول كيفية القيام بذلك القضاء هذه الحالات ، لا تستفزهم. لذا قد يبدو السؤال غريباً.

ردود الفعل: لقد حاولت الكثير من وصفات عرضت في الإجابات والتعليقات. بادئ ذي بدء ، لم أكن مهتمًا بالحوادث التي تسببت في حدوث مرض BSoD (ولهذا السبب وصفت تجميدًا ، وليس تحطمًا).

يجب أن أعترف بأن Windows 10 64 بت أظهر مقاومة جيدة للعديد من الطرق. تتواءم مع أي تقريبا CPU-تحميل طريقة (بما في ذلك شوكة قنبلةوالحلقات وغيرها) بشكل جيد. يتم التعامل مع الأساليب التي تثير الأخطاء الفورية (معظم أساليب التعليق NotMyFault) من قبل نظام التشغيل مع إعادة التشغيل أو إيقاف التشغيل (وهو ليس ما تابعت). تم تحقيق أفضل النتائج بواسطة تسريب ذاكرة طرق ليس خطئي - تجميد حقيقي مع عدم وجود فرصة لإعادة التشغيل.

أخيرا ، أعجبت كمية الوثائق التي أعدتها مايكروسوفت والتي تتحدث عن جعل Windows تجميد. يبدو أنهم يعرفون هذا الجزء أفضل بكثير من عكس ذلك (تجميد القتال) ؛-)


180
2017-11-02 08:03


الأصل


التعليقات ليست للمناقشة الموسعة. كانت هذه المحادثة انتقل إلى الدردشة. - DavidPostill♦
هناك عملية حسابية يمكنك القيام بها باستخدام الآلة الحاسبة ، والتي تقوم بتجميد النواة على وحدة المعالجة المركزية حتى يتم الانتهاء منها. على جهاز رباعي النواة يمكنك القيام بذلك أربع مرات واضح. لكنني لا أستطيع أن أتذكر حياة معادلة الرياضيات التي تسببها. - mickburkejnr
@ mickburkejnr إنه مكون من 100000. قم بالتبديل إلى "عرض علمي" اكتب 100000 واضغط "n!". هذا يعمل بشكل جيد على إصدارات Windows القديمة. في الوقت الحالي ، ستتلقى تحذيرًا من أن هذا الحساب قد يستغرق وقتًا طويلاً ويمكنك إلغاءه. - duenni
مجرد البدء في استخدامه. - samazi
تثبيت الترقيات كان يعمل دائما بالنسبة لي. - Daniel R Hicks


الأجوبة:


ربما هذا يمكن أن يساعد: فرض تحطم النظام من لوحة المفاتيح

باستخدام لوحات مفاتيح USB ، يجب تمكين عطل لوحة المفاتيح الذي يبدأ في   السجل. في مفتاح التسجيل   HKEY_LOCAL_MACHINE \ نظام \ نقرا \ خدمات \ kbdhid \ معلمات،   إنشاء قيمة تسمى CrashOnCtrlScroll وتعيينه يساوي   REG_DWORD قيمة 0x01.

يجب إعادة تشغيل النظام ليتم تفعيل هذه الإعدادات.

بعد اكتمال ذلك ، يمكن بدء تعطل لوحة المفاتيح باستخدام   تسلسل hotkey التالي: اضغط باستمرار على المفتاح الموجود في أقصى اليمين CTRL و   اضغط المفتاح SCROLL LOCK مرتين.

أو يمكنك البدء في قنبلة شوكة: انظر هذا السؤال

يوجد ايضا ليس خطئي

Notmyfault هي أداة يمكنك استخدامها في التعطل والتعليق وتسبب تسرب ذاكرة kernel على نظام Windows الخاص بك. من المفيد تعلم كيفية التعرف على مشكلات جهاز التشغيل والأجهزة وإصلاحها وتشخيصها ، كما يمكنك استخدامها لإنشاء ملفات تفريغ شاشة زرقاء على أنظمة تعمل على نحو غير صحيح.


230
2017-11-02 08:29



حاول ForkBomb و NotMyFault. يبدو أن إحدى طرق التسرب تفعل ما أريد. البعض الآخر ليست مفيدة لأنها تجلب لإعادة التشغيل / إيقاف لا تجميد. شكرا جزيلا. - hypers
CtrlScroll يجلب لك الموت الزرقاء. يعتمد ما إذا كان ذلك على تجميد النظام لتصحيح الأخطاء أو إعادة تشغيله فقط ، على إعدادات التمهيد. - grawity
Aaannnddd duenni غير مسموح به بالقرب من أجهزة الكمبيوتر الخاصة بي. أبدا. - corsiKa


يبدو أنك تختبر تفاعل جهاز خارجي إلى أن يصبح نظام التشغيل غير مستجيب.

إذا كان من الممكن توصيل جهازك بتثبيت Windows ظاهري ، فيمكنك إيقاف الجهاز الظاهري مؤقتًا واستئنافه عدة مرات كما تشاء. قم بتثبيت نظام التشغيل المطلوب في بيئة VirtualBox (أو بيئة ظاهرية أخرى على سطح المكتب) ، فكشف عن أي واجهة جهاز يتم استخدامها (USB أو Ethernet أو أيًا كان) في جهاز VM.

يمكنك بعد ذلك وقفة واستئناف الجهاز الظاهري في الإرادة.


25
2017-11-05 03:16





على الأقل تحت نسخة أقدم من ويندوز (قبل بضع سنوات) عملت التالية:

كتبت برنامج C بحلقة لا نهائية:

while(1) {}

... ثم أعطيت هذا البرنامج "الأولوية في الوقت الحقيقي" في إدارة المهام (هناك أيضا API التي يمكن أن تفعل ذلك).

على نظام متعدد النواة سوف أحتاج إلى القيام بذلك عدة مرات حتى يتم تشغيل حلقة واحدة على كل نواة ...


24
2017-11-02 11:55



لتسخين وحدة المعالجة المركزية الخاصة بك أقل أثناء القيام بذلك: ضع _mm_pause() من عند #include <immintrin.h> في الحلقة. هذا تعليمة أجهزة وحدة المعالجة المركزية ، وليس استدعاء نظام "النوم" من أي نوع. بقدر ما تشعر بالقلق OS ، لا يمكن تمييزها عن عملية SuperPI الخاص بك ؛ الفرق هو فقط في مقدار الطاقة التي تستهلكها وحدة المعالجة المركزية أثناء تشغيل الحلقة. - Peter Cordes
لست متأكدا مما إذا كان ذلك يمنع أجزاء وضع kernel من النوافذ من العمل. - CodesInChaos
CodesInChaos: معظم مؤشرات kernel تعمل بأولوية عادية. واحدة من هذه لكل وحدة المعالجة المركزية والنواة هو القيام به الكثير جدا جدا. - Joshua
تقنية أخرى تنطوي على التجمع x86 (STI + HLT): stackoverflow.com/questions/3747847/... - meklarian
meklarian: يجب أن يكون CLI; HLT. من المفترض أن يكون عليك القيام بذلك من وضع الامتيازات ، مع ذلك. من حيث المبدأ لا يزال من الممكن إنقاذها من قبل NMI أو ما شابه ذلك. - Nate Eldredge


الأقوى تعليق kernel (أي ، لا تتبع الماوس ، وما إلى ذلك) هو عندما ينتقل الكود إلى حلقة لا نهائية في وضع kernel مع المقاطعات.

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

كيفية كتابة وتثبيت برنامج التشغيل هذا سيكون موضوع سؤال آخر أو ثلاثة ، ولكن هذا هو النهج الذي سأتناوله.


10
2017-11-03 19:26





يرجى التحقق من السؤال التالي على StackOverflow وهو مشابه لك: كيفية جعل النوافذ تجميد لفترة قصيرة من الزمن

و tl ؛ دكتور من ذلك هو أنه لا توجد وسيلة ل (بشكل موثوق) القيام بذلك.

بدلاً من تجميد Windows أو جعله يتعطل ، ربما يمكنك فقط قطع الاتصال مع الأجهزة الخاصة بك.

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


9
2017-11-02 08:15



سأفكر في قطع الاتصال المادي للجهاز إذا لم أكن راضياً عن نتائج البرامج. شكر. - hypers


هل وضع تصحيح النواة ليس خيارًا؟

لقد قمت بإعداده في Windows 7 ، وكانت التعليمات المرتبطة في هذه الإجابة تحدد XP أو أحدث ، لذا يجب أن تعمل مع Windows 10.

لقد قمت قم بإعداده على FireWire / 1394لأنها الأسهل ، في رأيي. ولكن يمكنك أيضا تفعل ذلك عبر الشبكة أو يو اس بي (و أكثر من).

في الأساس،

قم بإعداد الكمبيوتر الهدف عن طريق تشغيل هذه الأوامر في موجه مرتفع (اختيار قناة n):

bcdedit /debug on
bcdedit /dbgsettings 1394 channel:n

وهو نفس طريقة الانتقال إلى علامة تبويب التمهيد msconfig، وتحديد زر "متقدم":

enter image description here

enter image description here

ثم (بعد إعادة تشغيل الكمبيوتر الهدف) ، قم بتشغيل WinDbg على الكمبيوتر المضيف باستخدام نفس شاهدة WinDbg للكمبيوتر الهدف.

ثم إنها مجرد مسألة إيقاف تشغيل kernel وقتما تشاء من الكمبيوتر المضيف. إذا قمت باختبار الجهاز ، فإن بعض العمليات غير المتزامنة التي يتم تشغيلها يجب أن تكون فعالة مثل الوسائل الأخرى.


5
2017-11-08 19:47



طريقة مثيرة للاهتمام. يحتاج إلى جهاز كمبيوتر ثاني على الرغم من. ولكن سوف حاول عندما يكون ذلك ممكنا. - hypers


لا أعرف ما إذا كان هذا مؤهلاً كالتجميد الكلي لأن مؤشر الماوس لا يزال يتحرك على الشاشة ، ولكن Windows 7 UI يصبح غير قادر على الاستجابة إذا كان لديك أخطاء I / O في جهاز أكثر تحديدًا فشل محرك أقراص ثابتة. كان أحد محركات الأقراص الصلبة هو إخفاق محرك الأقراص الذاتي عن طريق برنامج SMART ، وكان Windows 7 يقوم بتثبيته ، ولكن تم تعليقه كلما حاولت الوصول إلى بعض الملفات المحفوظة عليه. سيتم قفل واجهة المستخدم (باستثناء حركة مؤشر الماوس) لمدة تصل إلى 5 دقائق حتى يتمكن من قراءة الملف أو فك محرك الأقراص بعد انتهاء المهلة. لا أعرف ما إذا كان Windows يستخدم ساعة النظام للمهلة ، ولكن ربما إذا قمت بتجميد الوقت بشكل ما يمكنك تمديد مدة المهلة؟ ربما سيؤدي هذا إلى حصولك على جزء منه ، ولكن ليس 100٪ من الإجابة التي تبحث عنها.


2
2017-11-03 13:52