|
|
По поводу ошибки в w2k и winNT. Спасибо всем, приславшим комментарии (special thanks to Pavel Zavyalov, приславший ссылку на подробное описание чего и почему),
но в общих чертах - я в восторге.
Винду (во всяком случае NT4SP6a и win2k+sp2) можно легко и непринужденно "уронить"... даже не бинарником.
И не скриптом или, там, макросом для винворда. А обычным текстовым файлом, всегда считавшимся
принципиально безопасным. При этом не нужно иметь никаких привелегий сложнее доступа к кнопке "пуск"
и возможности создать (скачать, и подобное) текстовый файлик.
Итак. Владельцы NT всех мастей (у кого есть XP - большая просьба сообщить о результатах)
могут проделать следующее. Создаем текстовый файл, содержащий:
- два символа "табуляция" (ascii 09, убедитесь что ваш текстовый редактор не превратил их в пробелы),
- шесть символов "backspace" (ascii 08),
И так - много раз, без пробелов, переводов строки и прочих дополнений. В принципе, достаточно
двух повторений, но при этом для "роняния" винды требуются более специфические условия, да и
вероятность, роняния похоже, немного падает. Так что лучше сделать несколько тысяч повторений
(программа из трех строк на идущем в комплекте NT qbasic'е или десять минут долбления shift/ins в FAR'е,
впрочем, чего это я - держите готовое).
А теперь нажимаем start -> run, набираем type нашефайло.txt. Обычно после проскакивания консольного
окна до смерти системы проходит пара секунд (все это время система более-менее жива - мышь ездит, кнопки нажимаются),
после чего система жестко падает.
Удивляют две вещи. Первое - аскетичность диагностики на "синем экране". Если обычно (в случае NT4)
синий экран содержит кучу информации (имя модуля, вызвавшего ошибку, адреса, регистры, даже что-то вроде списка
процессов), то в этом случае информативность близка к выражению "... твою мать" - "неожиданное завершение чего-то там".
Ни регистров, ни имён, только стандартное обрамление синего экрана, да вот такая фраза об ошибке.
Второе - что система на самом деле не падает :-) Она совершает сеппуку (была бы детализация ошибки - было бы харакири).
Падает процесс csrss.exe, а сама система, обнаружив сей прискорбный факт, вместо того, чтобы
нарисовать красивое окошко с сообщением об ошибке и предложением пользователю застрелиться лично,
добровольно кончает с собой. Наверно, чтобы избежать огласки позора с csrss.exe :-)
О сути же ошибки можно догадаться и так. Наличие табуляций сбивает с толку счетчик "скока вывели символов
и где у нас курсор", в результате после очередного bs курсор пересекает левый верхний угол экрана, и...
...поэтому "короткий" вариант не работает при запуске из far'а или командной строки - курсор не там стоит,
до начала экрана не успевает добраться. Длинный работает всегда или почти всегда.
Я тащщусь.
| |
| |