Dlaczego system Windows nadal ma BSOD w „funkcji” Ctrl + Scroll + Scroll?


15

Gdy pojawił się Windows XP, usłyszałem o funkcji testowej, która istniała w celu ręcznego spowodowania BSOD (Blue Screen Of Death) . Słyszałem również, że to powinno być usunięte w dodatku Service Pack 2 dla XP. Nie zostało usunięte, jest również w Vista i Windows 7. Aby włączyć tę nawigację do tej lokalizacji w rejestrze:

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ i8042prt \ Parametry

i dodaj CrashOnCtrlScrolljako REG_DWORDo wartości 1.

Teraz uruchom ponownie i naciśnij Ctrl+ Scroll Lock+ Scroll Lock, a otrzymasz BSOD.

Dlaczego ta funkcja jest nadal dostępna?


3
Myślę, że musisz zapytać o to Microsoft.
DLH

19
Ponieważ wymaga to obowiązkowego włamania do rejestru, nie sądzę, aby pozostawienie go w systemie było wadą. Nikt prawdopodobnie nie uruchomi go przez pomyłkę.
sangretu

Czy sekwencja klawiszy będzie również działać, jeśli zostanie wywołana z sesji RDP?
Axxmasterr

4
Ponieważ ma uzasadniony przypadek użycia, który ma znaczenie dla osób, które faktycznie piszą i debugują jądro i sterowniki urządzeń, nie spodziewałbym się, że zostanie usunięty. Włączenie go wymaga dostępu do zapisu w HKLM, a nawet jeśli włączone, dostaniesz tylko BSOD.
RBerteig

2
@Axxmaster: Nie, nie zrobi tego, ponieważ sekwencja klawiszy jest zaimplementowana w sterownikach urządzeń dla klawiatur. Te nie są potrzebne ani nawet wykorzystywane w sesji RDP.
Joey

Odpowiedzi:


34

Ma tam umożliwić włamanie się do debugera jądra lub wygenerowanie pliku zrzutu trybu jądra. Zazwyczaj ekspert chciałby to zrobić, gdy system operacyjny wygląda na zamknięty i nawet nie reaguje na CTRL + ALT + DELETE, aby uzyskać plik zrzutu i zbadać go, w przypadku którego sterownika występuje problem.

Jest logicznie równoważne z wywołaniem KeBugCheck API jądra za pomocą kontroli błędów 0xE2 (MANUALLY_INITIATED_CRASH). Należy również pamiętać, że wartości reg można ustawić w różnych klawiszach reg dla sterownika klawiatury USB (kbdhid) w porównaniu do sterownika ps2 (i8042prt). Więcej informacji na ten temat i dostosowywanie używanego klawisza można znaleźć w artykule 244139 KB .

Ponieważ jest to zaimplementowane w rzeczywistych sterownikach klawiatury, nie oczekuję, że to zadziała i sesja RDP, nawet jeśli jest włączona.


1
Jest również dostępny dla twórców sprzętu i sterowników, którzy w pewnym momencie muszą złapać się debuggera. I zdecydowanie uważam, że to powinna być zaakceptowana odpowiedź.
Joey

6

Jeśli jesteśmy hojni, czy może to być wykorzystane jako zbyt entuzjastyczny sposób wymuszenia zrzutu awaryjnego w celu ręcznego sprawdzenia stanu systemu? (głównie do debugowania)

OK - dość dziwny sposób na zrobienie tego, ale ...


7
To jest naprawdę bardzo hojne. Może to być metoda, która miała na celu pozwolić oprogramowaniu na awarię systemu, aby „zatrzymać krwawienie” w przypadku poważnego kompromisu. Wymuszenie zamknięcia systemu zapobiegnie kradzieży danych.
Axxmasterr

5

Nazwijmy to easter egg.

Gratulacje ... znalazłeś to!


3

Brzmi jak coś, co nie było warte czasu i wysiłku, aby usunąć go z bazy kodu.


Nie, został zachowany, ponieważ jest nieocenioną funkcją diagnostyczną.
Synetech,

3

To naprawdę brzmi zabawnie, żart.


5
Kiedyś mój nauczyciel korzystał z niej w szkole i grałem w pełną wersję gry.
Kredns

@Lucas: Poczekaj, masz dostęp administratora w miejscu, w którym jesteś studentem? : O
Joey

@Johannes: Tak. To było bardzo luźne.
Kredns

spoulson, oczywiście nie jesteś programistą, a przynajmniej debuggerem niskiego poziomu.
Synetech,

2

Wyobrażam sobie, że Microsoft przeprowadza testy jednostkowe na swoim systemie operacyjnym przed wydaniem aktualizacji itp. Prawdopodobnie jednym z testów byłoby sprawdzenie, czy BSOD nadal zachowuje się tak, jak powinien. Sensowne jest także przeprowadzanie testów jednostkowych na rzeczywistej wersji kodu w celu uzyskania bardziej niezawodnego testu.


Ma to zastosowanie dla użytkowników (cóż, programistów).
Synetech,

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.