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?

Kredns
źródło
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.

Ari Pernick
źródło
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 ...

Marc Gravell
źródło
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!

DLH
źródło
3

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

Jeffrey
źródło
Nie, został zachowany, ponieważ jest nieocenioną funkcją diagnostyczną.
Synetech,
3

To naprawdę brzmi zabawnie, żart.

spoulson
źródło
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.

Vdex
źródło
Ma to zastosowanie dla użytkowników (cóż, programistów).
Synetech,
2

Powinieneś obejrzeć filmy Marka Russinovicha, w których pokazuje on, jak diagnozować system zawiesza się z tą „funkcją”. Myślę, że to było po prostu włączone w SP2, a nie usunięte.

kpierce8
źródło