Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Компьютерлік аппараттық зақымдануға бағдарламалық құралдар
Software means of causing computer hardware damage
Компьютерлік жаргонда, "өлтіруші тығу" (killer poke) – бұл машинаға немесе оның сыртқы құрылғыларына жарамсыз мәндерді енгізу арқылы, мысалы, BASIC-тің POKE командасы арқылы, жад картасы бойынша басқару тіркелгішіне физикалық аппараттық зақымдану тудыратын әдіс. Бұл термин көбінесе аппараттық қателерді тексеруі жоқ компьютерлердің CRT мониторларындағы аналогтық электрониканы артық жүктемеге түсіре алатын, жақсы белгілі бір тәсілдер жиынтығын сипаттау үшін қолданылады (мысалы, IBM Portable және Commodore PET).
In computer jargon, a killer poke is a method of inducing physical hardware damage on a machine or its peripherals by the insertion of invalid values, via, for example, BASIC's POKE command, into a memory mapped control register. The term is typically used to describe a family of fairly well known tricks that can overload the analog electronics in the CRT monitors of computers lacking hardware sanity checking (notable examples being the IBM Portable and Commodore PET.)
Zuse Z1/Z3
Конрад Цузе жасаған Z1 (1938) және Z3 (1941) компьютерлерінде аппараттық құрылғыға кездейсоқ орындалған жағдайда зақым келтіретін заңсыз нұсқаулар тізбегі болған. Бұл машина мәтін мен графиканы экранға 106%-ға жылдам көрсетуге мүмкіндік берді. Бұл, статикалық/шуды азайту үшін жасалған, ортақ VRAM-нің дисплеймен бір уақытта оқылуына және CPU-ға жазылуына кедергі келтіретін "экранға басып шығаруды күту" қауіпсіздік механизмін өшіру арқылы жүзеге асырылды. Бұл қауіпсіздік механизмі өшірілген кезде графика екі есе жылдам экранға шығарылды, бірақ сонымен бірге шағын статикалық бөлшектер де пайда болды. Статикаға қарамастан, ерте ПЭТ компьютерлері үшін жасалған кейбір ойындар осы POKE командасын бастапқы кодына енгізіп, жылдам графиканың артықшылықтарын пайдаланды. Себебі POKE командасының бағытталған пині дисплей уақытын басқару үшін қолданылған, бірақ жаңартылған бейнечипте сол пин тік синхронизацияны басқарды. Осылайша, жаңа аппараттық құрылғыда POKE командасын іске қосу графикалық кескіндердің тік қысылуына, кейде өте жарқын көлденең сызыққа дейін әкелді. Бұл аномалия дисплейде қалып қоюы мүмкін деген қауіптен "өлтіретін POKE" деген лақап атқа ие болды.
The Z1 (1938) and Z3 (1941) computers built by Konrad Zuse contained illegal sequences of instructions which damaged the hardware if executed by accident.) made the machine able to display text and graphics on the screen 106% faster. This was accomplished by disabling a "wait to print to screen" safeguard designed to reduce static/noise by preventing the shared VRAM from being read by the display at the same time as it was being written to by the CPU. With this safeguard disabled, graphics could appear on the screen twice as fast, but small bits of static would also appear. Despite the static, some games designed for early PETs included this POKE in their source code in order to benefit from the faster graphics. This is because the exact pin targeted by the POKE command used to control display timing, but in the upgraded video chip, that pin controlled the vertical sync. Thus, running the POKE on the newer hardware caused graphics to compress vertically, sometimes down to an extremely bright horizontal line. Fears that this anomaly might burn in to the display led to the nickname "killer poke";
Commodore 1541 дискілік дискісі
Commodore 64 құрылғысында қосымша 5 1/4" дискі жетегі болды. Commodore 1541 құрамында Commodore DOS жүйесін іске қосу және дискі жетегінің механизмін басқару үшін пайдаланылған 6502 микропроцессоры болды. Дискілерде 35 трек (#0–34) бойынша деректер сақталады, ал қадамдық қозғалтқышты BASIC арқылы "MEMORY WRITE" командаларын дискіге жіберу арқылы (БАСИК-тің POKE командасына ұқсас, бірақ компьютердің емес, дискінің ішкі жадына және I/O тіркелгіштеріне жазады) қолмен басқаруға болады. Егер дискі жетегі өте кішкентай немесе үлкен тректе (0 немесе 39 трек) болса және оны одан әрі жылдыруға бұйрық берілсе, дискіге зақым келтірмеу үшін бағдарламалық немесе аппараттық шешім болмады. Жетегінің басы тоқтауға соғылып, механизмнің дұрыс жұмысын бұзуы мүмкін. Бұл мәселені әдеттен тыс трек саны бар стандартты емес дискі форматтарын пайдаланатын көшірмеден қорғау әдістері одан әрі ушықтырды. Commodore 1571 дискі жетегінде механикалық емес, оптикалық бас тоқтау механизмі болды.
The Commodore 64 had an optional external 5 1/4" floppy drive. The Commodore 1541 contained a 6502 microprocessor which was used to run Commodore DOS and also to manage the drive mechanism. The drives stored data on 35 tracks (#0–34), and the stepper motor could be manually controlled through BASIC by PRINT# ing "MEMORY WRITE" commands to the drive (which correspond to the POKE command of BASIC, but write to the drive's internal memory and I/O registers, not those of the computer itself). If the drive was at either end of its range (track 0 or track 39) and it was commanded to continue moving, there was no software or firmware method to prevent drive damage. Continued "knocking" of the drive head against the stop would throw the mechanism out of alignment. The problem was exacerbated by copy protection techniques that used non standard disk formats with unusual track counts. The Commodore 1571 had an optical head stop instead of a mechanical one.
TRS-80 III үлгісі
TRS 80 Model III 32 символдық және 64 символдық дисплейлер арасында ауысу қабілетіне ие болды. Бұл бейне аппараттыдағы релені қосатын болды, бұл белгілі бір жадқа бейнеленген басқару тізіліміне жазу арқылы орындалды. Жоғары жылдамдықпен 32 және 64 символдық режимдер арасында қайта-қайта ауысатын бағдарламалар (мұқият немесе кездейсоқ түрде) бейне аппараттарына қайтымсыз зақым келтіруі мүмкін. Бұл бір ғана "қатерлі нұсқау" болмаса да, аппаратты қайтымсыз зақымдауы мүмкін бағдарламалық қателік режимін көрсетеді.
The TRS 80 Model III had the ability to switch between a 32 character wide display and a 64 character display. Doing so actuated a relay in the video hardware, accomplished by writing to a specific memory mapped control register. Programs that repeatedly switched between 32 and 64 character modes at high speed (either on purpose or accidentally) could permanently damage the video hardware. While this is not a single "killer poke", it demonstrates a software failure mode that could permanently damage the hardware.
LG CD-ROM дисктер
LG CD-ROM дисктерінің кейбір модельдері белгілі бір тұрақ-бағдарламалармен "тұрақ-бағдарламаны жаңарту" үшін қалыпты емес команданы қолданды: CD-RW дисктерінде әдетте қолданылатын "буферді тазалау" командасы. Linux осы команданы CD-ROM және CD-RW дисктердің аражігін ажырату үшін пайдаланады. Көптеген CD-ROM дисктері қолдау көрсетілмейтін CD-RW командасына қате қайтарады, бірақ бұзылған дисктер оны "тұрақ-бағдарламаны жаңарту" деп қабылдап, жұмысын тоқтатты (немесе, қарапайым тілмен айтқанда, "істен шықты").
Certain models of LG CD ROM drives with specific firmware used an abnormal command for "update firmware": the "clear buffer" command usually used on CD RW drives. Linux uses this command to tell the difference between CD ROM and CD RW drives. Most CD ROM drives dependably return an error for the unsupported CD RW command, but the faulty drives interpreted it as "update firmware", causing them to stop working (or, in casual parlance, to be "bricked").
Жедел жады
Флеш-жадтың ресурсы мол, бірақ шектеулі. Сақтауға жазу маңызды операция болғандықтан, көптеген қосымшалар флеш-чиптердің ресурсын 24 сағат ішінде сақтауды толтырып, жазуды күшейтуге және кішкентай файлды үнемі қайта жазу арқылы тозуға жеткілікті құқықтарға ие.
The resource of flash memory is large, but limited. Since writing to storage is an essential operation, most applications have enough privileges to exhaust the resource of flash chips within 24 hours by filling the storage enough to cause write amplification and continuously rewriting a small file.
MSi ноутбуктер UEFI
Systemd Linux жүйесінің sysfs-інде Unified Extensible Firmware Interface қолданатын айнымалыларды жүйе түбір пайдаланушысы өңдеуге болатындай етіп орнатады. Осының салдарынан, жүйе түбір пайдаланушысы UEFI талаптарына сай келмейтін жүйелерді (әсіресе кейбір MSi ноутбуктерді) /sys/firmware/efi/efivars/ каталогын жою үшін rm командасын қолдану арқылы немесе түбірлік каталогты рекурсивті жою арқылы толығымен істен шығаруы мүмкін.
Systemd mounts variables used by Unified Extensible Firmware Interface on Linux system's sysfs as writable by the root user of a system. As a result, it is possible for the root user of a system to completely brick a system with a non conforming UEFI implementation (specifically some MSi laptops) by using the rm command to delete the /sys/firmware/efi/efivars/ directory, or recursively delete the root directory.