Zabójczy cios

W żargonie komputerowym zabójcze nękanie to metoda spowodowania fizycznego uszkodzenia sprzętu na maszynie lub jej urządzeniach peryferyjnych poprzez wstawienie nieprawidłowych wartości, na przykład za pomocą polecenia POKE języka BASIC , do rejestru kontrolnego odwzorowanego w pamięci . Termin ten jest zwykle używany do opisania rodziny dość dobrze znanych sztuczek, które mogą przeciążyć elektronikę analogową w monitorach CRT komputerów bez sprawdzania poprawności sprzętu (godne uwagi przykłady to IBM Portable i Commodore PET ).

Konkretne przykłady

Użyj Z1/Z3

Komputery Z1 (1938) i Z3 (1941) zbudowane przez Konrada Zuse zawierały nielegalne sekwencje instrukcji, które przypadkowo uszkadzały sprzęt.

Commodore PET

dla PET zabójczy atak jest połączony z architekturą obwodów rasteryzujących wideo tej maszyny. We wczesnych PETach zapisanie określonej wartości w adresie pamięci określonego I/O ( POKE 59458,62 ) ​​sprawiało, że maszyna była w stanie wyświetlać tekst i grafikę na ekranie o 106% szybciej. Osiągnięto to poprzez wyłączenie zabezpieczenia „oczekiwania na wydruk na ekranie” zaprojektowanego w celu zmniejszenia zakłóceń/szumów poprzez zapobieganie odczytywaniu współdzielonej pamięci VRAM przez wyświetlacz w tym samym czasie, gdy była ona zapisywana przez procesor. Po wyłączeniu tego zabezpieczenia grafika mogłaby pojawiać się na ekranie dwa razy szybciej, ale pojawiałyby się również niewielkie fragmenty statyczne. Pomimo statyki, niektóre gry zaprojektowane dla wczesnych PET zawierały ten POKE w swoim kodzie źródłowym, aby skorzystać z szybszej grafiki.

Kiedy gama PET została unowocześniona za pomocą zaktualizowanego sprzętu, obwody rasteryzatora wideo zostały przeprojektowane, aby działały z większą prędkością i bez potrzeby stosowania zabezpieczenia „oczekiwania na wydruk”. W ten sposób stara sztuczka POKE nie skutkowała już szybszą grafiką. Zamiast tego wykonanie starej sztuczki na nowym sprzęcie doprowadziło do dziwnego zachowania nowego układu wideo, co mogło spowodować rywalizację o sygnał i prawdopodobnie uszkodzić zintegrowany CRT PET monitor. Dzieje się tak, ponieważ dokładny pin, na który kierowało polecenie POKE, służył do sterowania synchronizacją wyświetlania, ale w ulepszonym układzie wideo ten pin kontrolował synchronizację pionową. Tak więc uruchomienie POKE na nowszym sprzęcie powodowało kompresję grafiki w pionie, czasami aż do bardzo jasnej poziomej linii. Obawy, że ta anomalia może wypalić się na wyświetlaczu, doprowadziły do ​​przydomka „killer poke”, jednak nie wiadomo, czy kiedykolwiek spowodowała trwałe uszkodzenie monitora.

Dysk Commodore 1541

Commodore 64 miał opcjonalny zewnętrzny napęd dyskietek 5-1 / 4 ". Commodore 1541 zawierał mikroprocesor 6502, który był używany do uruchamiania Commodore DOS a także do zarządzania mechanizmem napędowym. Napędy przechowywały dane na 35 ścieżkach (nr 0–34), a silnikiem krokowym można było sterować ręcznie za pomocą języka BASIC, wysyłając do napędu polecenia „MEMORY-WRITE” PRINT # (które odpowiadają poleceniu POKE języka BASIC, ale zapisuj do pamięci wewnętrznej napędu i rejestrów wejścia/wyjścia, a nie samego komputera). Jeśli dysk znajdował się na którymkolwiek końcu swojego zakresu (ścieżka 0 lub ścieżka 39) i wydano mu polecenie kontynuowania ruchu, nie istniało żadne oprogramowanie ani metoda oprogramowania sprzętowego zapobiegająca uszkodzeniu dysku. Dalsze „stukanie” głowicy napędowej o ogranicznik spowodowałoby rozregulowanie mechanizmu. Problem nasilił się m.in ochrony przed kopiowaniem , które wykorzystywały niestandardowe formaty dysków z nietypową liczbą ścieżek. Commodore 1571 miał optyczny ogranicznik głowicy zamiast mechanicznego.

TRS-80 Model III

TRS -80 Model III miał możliwość przełączania między 32-znakowym wyświetlaczem a 64-znakowym wyświetlaczem. W ten sposób uruchomiono przekaźnik w sprzęcie wideo, co osiągnięto poprzez zapis do określonego rejestru kontrolnego mapowanego w pamięci. Programy, które wielokrotnie przełączały tryby 32- i 64-znakowe z dużą szybkością (celowo lub przypadkowo) mogą trwale uszkodzić sprzęt wideo. [ potrzebne źródło ] Chociaż nie jest to pojedyncze „zabójcze szturchanie”, pokazuje tryb awarii oprogramowania , który może trwale uszkodzić sprzęt.

Przekaźnik kasety magnetofonowej

Kolorowy komputer TRS-80 , IBM PC , IBM PCjr , Nascom , MSX , Amstrad CPC i BBC Micro firmy Acorn Computers zawierały wbudowany przekaźnik do sterowania zewnętrznym magnetofonem. Przełączanie przekaźnika sterowania silnikiem w ciasnej pętli skróciłoby żywotność przekaźnika.

Amiga

Napęd dyskietek komputera osobistego Amiga można było zmusić do wydawania dźwięków o różnej wysokości, poruszając głowicami napędów w przód iw tył. Istniał program, który mniej więcej poprawnie odtwarzał El Cóndor Pasa na dyskietce Amigi. Ponieważ niektóre dźwięki polegały na uderzeniu zespołu głowicy w ogranicznik, stopniowo powodowało to utratę wyrównania głowicy.

Napędy CD-ROM firmy LG

Niektóre modele napędów CD-ROM firmy LG z określonym oprogramowaniem układowym wykorzystywały nieprawidłowe polecenie „aktualizacji oprogramowania układowego”: polecenie „wyczyść bufor” zwykle używane w napędach CD-RW. Linux używa tego polecenia do rozróżnienia napędów CD-ROM i CD-RW. Większość napędów CD-ROM niezawodnie zwraca błąd dla nieobsługiwanego polecenia CD-RW, ale wadliwe napędy zinterpretowały to jako „aktualizację oprogramowania układowego”, powodując, że przestały działać (lub, mówiąc potocznie, „zamurować” ) .

UEFI laptopów MSi

Systemd montuje zmienne używane przez Unified Extensible Firmware Interface w sysfs systemu Linux jako dostępne do zapisu przez użytkownika root systemu. W rezultacie użytkownik root systemu może całkowicie zablokować system z niezgodną implementacją UEFI (w szczególności niektóre laptopy MSi ) za pomocą polecenia rm w celu usunięcia katalogu /sys/firmware/efi/efivars/ lub rekursywnie usuń katalog główny .

Game Boy

Ekran LCD Game Boya można wyłączyć za pomocą oprogramowania do gier. Robienie tego poza interwałem wygaszania pionowego może rzekomo uszkodzić sprzęt.

Smok 32

Szybkość zegara procesora Dragon 32 została zdefiniowana przez programowalny dzielnik zegara, który użytkownik mógł zaprogramować w celu zwiększenia szybkości procesora o 50% lub 100%, a teoretycznie o 150% (chociaż wybranie tej szybkości spowodowało awarię systemu). Procesor 6809E był pierwotnie oceniany na 1 MHz, a Dragon 32 działał z częstotliwością 0,89 MHz . Wzrost prędkości do 1,33 MHz wydawał się w większości stabilny, podczas gdy wzrost do 1,78 MHz powodowałby utratę synchronizacji wideo. W tamtym czasie ogłoszono, że zwiększone ciepło wytwarzane przez wzrost prędkości ostatecznie uszkodzi procesor. POKE 65495, 0 dozwolone dla podwójnej prędkości z grafiką nadal wyświetlaną poprawnie. POKE 65497, 0 utraconych synchronizacji wideo.

Zobacz też

Linki zewnętrzne