Windows XP ve daha yeni sürümlerde BSOD'ye nasıl neden olunur?


14

Windows XP ve daha yeni sürümlerde programlı olarak BSOD'ye neden olmanın bir yolu var mı? Nasıl?

BTW sadece açıklığa kavuşturmak için, bu kötü amaçlı amaçlar için değildir. İstemci, LAN'ındaki bir terminali bu şekilde kapatmayı / yeniden başlatmayı istedi. Neden sorduğumda, normal bir yeniden başlatmadan daha hızlı olduğu için dediler ... :)

(Bu programı "Super User" a kimin getirdiğini anlamıyorlar "merakla" programlı "bir kısmı merak ediyorum.


18
Bir sürücü yazmayı gerektirmeyen bir sürücü bulursanız, düzeltmeleri için Microsoft'a bildirin.
Erik

13
Um. Bir nedenden ötürü normal bir yeniden başlatmadan daha hızlıdır - mutlaka zarif bir şekilde kapanmaz. Çok yavaş kapanan bir programınız varsa, programı kesmek bir sorun olmayabilir. G / Ç donanımına çok yakın herhangi bir şeyi zorla kapatırsanız veya terk ederseniz, bozuk dosya sistemleri vb. İle sonuçlanabilir. hakkında da sorununuzu ...)

12
Müşterinizin kurumsallaştırılması ve zihinsel durumlarının ardından bir tıbbi ekip tarafından daha yakından takip edilmesi gerekir.
Darin Dimitrov

9
Ambulanslar genellikle kendi arabanızı hastaneye sürmekten daha hızlıdır. Bu onu tercih edilen seyahat modu yapmaz.
FreeAsInBeer

8
Müşterinize güç düğmesini 6 saniye basılı tutmasını söyleyin. Ya da sadece güç kablosunu sarsın, bu daha hızlı.
Hans Passant

Yanıtlar:


15

Klavye sürücülerinden BSOD'ye neden olduğu söylenebilir:

HKLM\SYSTEM\CurrentControlSet\Services\kbdhid\Parameters

veya (eski PS / 2 klavyeler için)

HKLM\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters

Ve orada bir REG_DWORDisim CrashOnCtrlScrollverdi 1.

Bir sonraki yeniden başlatmanın ardından mavi ekranı Ctrl+ ScrollLk+ zorlayabilirsiniz ScrollLk. Hata kontrol kodu bu durumda 0xE2 (MANUALLY_INITIATED_CRASH) olacaktır.

Eğer varsa gerçekten programlı bir yöntem isterseniz o makine veya yazma bazı sürücü bir delik bulup, bir basit sürücüsünü yüklemeniz gerekir çağrılar ya KeBugCheckya KeBugCheckEx.

İyi eğlenceler ;)

Yan not: sürücü yazarları için veya hatta kötü amaçlı yazılımlarla uğraşırken böylesi bir kazaya neden olmak çok yararlı olabilir. Sisteminizi tam bir bellek dökümü oluşturacak şekilde yapılandırdıysanız, çalışan sistemin daha fazla analiz edilebilecek bir görüntüsüne sahip olursunuz. Bir hata ayıklayıcının her durumda mutlaka yardımcı olmadığı bir kilitlenme gibi durumları düşünün.


4
Bu doğru mu? Eğer öyleyse havalı! (Hayır, bilgisayarlarımın herhangi birinde test etme havasında değilim.)
Andreas Rejbrand

3
Evet, aslında bir şaka değil. Bu, sürücü yazarlarının bir süredir kullandıkları bir şey, ancak kayıt konumunun ne olduğunu kafamın üstünden hatırlamıyordum. Notlarımda bakmak zorunda kaldım.
0xC0000022L

Ram veya dahili Hardisk kullanırken baskı ekranı veya çok fazla bellek yazarak bir bsod yaşadım. Belki bir sistemi de sömürmek.
Tech-IO


1

Tam olarak nasıl neden olacağından emin değilim, ancak Vista ve 7'ye inanıyorum, varsayılan olarak sistem arızasını kapatmak ve BSOD'yi göstermemek.


Sorun değil, bu davranışı istiyorum.
Tamás Szelei

1
@FreeAsInBeer: Bunun nedeni, sistem ayarlarınızın kilitlenmeden sonra yeniden başlatılmasını söylemesidir. Bu, bilgisayar özelliklerinizin Gelişmiş sekmesinde değiştirilebilir. Ayrıca, günümüzde oluşturulan çökme dökümleri genellikle varsayılan olarak mini dökümlerdir, bu yüzden yeniden başlatma o kadar hızlı gerçekleşir ki mavi ekranı göremezsiniz (kelimenin tam anlamıyla). Ama orada, inanın bana;)
0xC0000022L

1
@STATUS_ACCESS_DENIED: Biliyorum, bu değişken için varsayılanın BSOD'leri göstermeyecek şekilde ayarlandığını bilmesini sağlıyordum, bu yüzden beklendiği gibi almadıysa bu özelliği kontrol etmeyi biliyordu.
FreeAsInBeer

@FreeAsInBeer: yeterince adil :)
0xC0000022L

1

Genellikle, bir BSOD işletim sistemi veya donanım içinde bir şey çok yanlış gittiğinde meydana gelir. İşletim sistemi yazarları ve donanım satıcıları, ürünlerinin kötü görünmesine ve kullanıcılarının deneyimini bozmasına neden olan kötü yazılım mühendislerini takdir etmediği için, bunların dışındakilerden birinde yanlış giden bir şey almak doğal olarak oldukça zordur.

Bir sürücü yazmak, işletim sistemine ve donanıma yeterince yaklaşmanın ve böyle bir hataya neden olmanın birkaç yolundan biridir. Tabii ki, böyle bir sürücüyü yüklemek genellikle amaçlı bilgi ve yönetici ayrıcalıkları olmadan yaptığınız bir şey değildir, bu yüzden bunu kötü amaçlı amaçlar için kullanmak oldukça zor olur. Bu tür bir erişim ile, bir BSOD veya bu tür araçlar olmadan çok daha fazla zarar verebilirsiniz.


1

BSOD bir çekirdek paniktir. Çekirdeğin bir kısmı anlamına gelir, işletim sisteminin çekirdeği gerçekten kötü bir şey yaptı. Belki karalanmış bir bellek, belki de olmaması gereken bir kod çalıştırdı. Programlı olarak, kodu çekirdek alanına almanız ve ardından bir şekilde talep üzerine tetiklemeniz gerekir. Prod sunucusu için biraz riskli.

Normal Windows makineleri, işlemlerde ve çekirdeğinde çok fazla duruma sahiptir. Durumu ne olursa olsun, durumu tutarlı tutmak için, kısa devre yaptınız.

Özellikle bir BSOD (genellikle) bir çekirdek (veya sürücü) hatasıdır, çekirdek kötü bir durumdadır, o kadar kötü ki temizleyemeyeceğini ve yeniden başlatmayı tercih edeceğini, sadece iyi durumda olmadığını kaybedecektir. neyin iyi neyin kötü olduğunu bilir. Herhangi bir arabellek disk (ler) e akıtılamadı. Sonra yeniden başlatmayı temizlemeye çalışacak, ancak kapatma / panik üzerinde çok fazla bağlam kaybetti, bu yüzden panikten hem iyi hem de kötü artıklardan geçmek zorunda kalan muhafazakar bir temizlik olacak.

Bu nedenle, kapanmadaki avantajlarınızdan bazıları başlangıçta gitti, çünkü şimdi bacaklarının altından kesildiği yeri bulması gerekiyor. Chkdsk'i çalıştırmalı ve kısmi yazma durumunda olan tüm disk bloklarını temizlemelidir. USB diskler çok fazla önbellek tutar. Önbelleğe almayı kapatabilirsiniz, bu da çökme sırasında veri kaybetme olasılığını azaltacaktır, ancak daha sonra önbelleğe almamak biraz hız alır. Hangi dosyaları kaybetmek istiyorsun?

Kısacası, bu kötü bir fikir. Bunun olduğu herhangi bir üretim makinesi, temizlikten sonra bile dengesiz bir durumda olabilir. Bu kötü.

Sadece kapama vuruşunu alıp yeniden başlatmayı söyleyebilirim. Sunucuyu ilk kez yeniden kurmanız gerektiğini düşündüğünüz zamandan tasarruf edersiniz, çünkü önyükleme yapmaz veya programlarınız başlatılamaz.


Konuyu özlüyorsun. Yazdığınız bir sürücü ile ilgili bir sorunu ayıklarken talep üzerine BSOD'ye neden olmak için iyi nedenler vardır. Ancak, bu sorunun doğası gereği asla SO'dan buraya taşınmaması gerektiğini düşünüyorum.
0xC0000022L

@STATUS_ACCESS_DENIED İfadenizi kabul ediyorum, ancak orijinal soruyu hatırlarsanız, hata ayıklama ile ilgisi yoktu, ancak bir sistemi kapatmak için bir kısayol vardı. Bence iyi bir neden değil.
Rich Homolka

0

Csrss.exe işlemini öldürmenin BSOD yapacağını belirtmek gerekir. Ancak en yeni Windows'da değil (8, 8.1).


Bu bir uygulama tarafından yapılabilir. Herkes böyle bir uygulamayı Visual Studio Express'te (ücretsiz) yapabilir.
pbies

Bu kod 0xC000021A ( STATUS_SYSTEM_PROCESS_TERMINATED), btw.
0xC0000022L

0

Https://www.mpgh.net/forum/showthread.php?t=1100477 adresindeki kod snippet'i Windows 10.17134'te çalışıyor

#include <windows.h>
#pragma comment(lib, "ntdll.lib")

extern "C" NTSTATUS NTAPI RtlAdjustPrivilege(ULONG Privilege, BOOLEAN Enable, BOOLEAN CurrentThread, PBOOLEAN OldValue);
extern "C" NTSTATUS NTAPI NtRaiseHardError(LONG ErrorStatus, ULONG NumberOfParameters, ULONG UnicodeStringParameterMask,
PULONG_PTR Parameters, ULONG ValidResponseOptions, PULONG Response);

void BlueScreen()
{
    BOOLEAN bl;
    ULONG Response;
    RtlAdjustPrivilege(19, TRUE, FALSE, &bl); // Enable SeShutdownPrivilege
    NtRaiseHardError(STATUS_ASSERTION_FAILURE, 0, 0, NULL, 6, &Response); // Shutdown
}

Olay Günlüğünde hiçbir iz yok gibi görünüyor. Tabii ki minidump bir iz tarafından olacak?

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.