Конструктор "сделай сам", или защита Windows подручными средствами

Конструктор "сделай сам", или защита Windows подручными средствами

Диск попортился — ну что ж,
Вот топор, стамеска, нож!
Нет, подай-ка им Disk Doctor —
Ох уж эта молодежь!
"Федот-программист"

Ну вот, наконец, и настал тот самый момент очередного отъезда. Вещи уже упакованы, билеты куплены, скоро вернетесь сюда снова. Бросаем прощальный взгляд на компьютер (единственную реальную ценность) и... и ловим на нем же, родимом, кровожадные и нетерпеливые взгляды друзей, знакомых — всех, кто бросится за клавиатуру, как только вы выйдете за двери. А потом очередное удаление хлама с жесткого диска, находящегося, как правило, в папках "Совершенно_секретно", "не_удалять" и т.д, реинсталл windows и много-много слов, цензурными в которых являются только знаки препинания. Компьютер нужно защищать! Но что же делать, если из программирования вы знаете "Паскаль", "С++", "Ассемблер" и другие страшные слова, не представляя, что за ними кроется, а последняя "система защиты" была благополучно снесена вместе с ОС после долгих и безуспешных попыток вспомнить пароль на доступ к вышеупомянутой системе? Выход есть. Будем обходиться стандартными средствами. Речь будет идти только о защите ОС Win 9x, так как в системах на ядре NT дело с безопасностью обстоит не в пример лучше.
Для работы нам понадобятся: руки — желательно не менее 1 шт. Компьютер — желательно не соседский: ваших шуток могут не оценить по достоинству:). Голова — желательно с поверхностными представлениями о таких понятиях, как Bios, Dos, Win9x, кнопка Power:).

Итак, начнем с основы основ — БИОС 'а. Самый простой выход — просто поставить пароль и включить на вкладке Advanced Options пункт System. Но тут и появляются осложнения. Противник (если вы не против, я буду называть человека, посягающего на вашу машину, именно так), начитавшись журналов типа "Хакер и ты — вещи несовместимые", может вполне возомнить себя вторым Митником и, вооружившись для надежности неизвестно откуда взявшимся ломиком, пойдет вскрывать системный блок для закорачивания батарейки или переключения перемычки для сброса CMOS'а. Если с первым он еще справится, то со вторым без документации на материнскую плату и знания зарубежного (лучше — английского:)) языка может тех еще дел натворить. Мне попадались личности, которые пытались найти эту перемычку методом тыка. Увы, не будем о последствиях.

Возможные варианты спасения:
1. Приварить крышку системного блока намертво, затем залить клеем, обмотать скотчем, навесить защитные печати и амулеты и ни в коем случае не включать:). Правда, как вы туда потом сами влезете — это вопрос интересный...
2. Повесить навесной замок, не менее 5 кг весом. Правда, если ключ потеряете...
3. Носить системник с собой, прижав к сердцу, и не подпускать к нему никого ближе, чем на метр. Правда, тогда сами друзья поспешат вызвать для вас добрых санитаров в белых халатах.
Именно поэтому в BIOS'е я предлагаю поставить загрузку с жесткого диска и пароль на Setup (вход в BIOS).

"Autoexec.bat". Должен быть у вас такой файлик в корневом каталоге на диске, где установлена Windows. Если нет — создайте. Он нам еще пригодится. Давайте допишем в его конец несколько строчек:
echo off
:metka
cls
echo Внимание! Срок действия лицензии вашей Windows 98 истек. Для активации вставьте в дисковод 1$. Деньги будут декомпилированы, оцифрованы и посланы в Microsoft посредством электрической розетки. В случае неуплаты ваш компьютер будет отключен. С уважением, Б. Гейтс.
pause
echo Нажата клавиша> > presskey.dat
goto metka

Возможные варианты спасения:
1. Для выхода из цикла следует нажать Ctrl+C. Затем набираете Win и наслаждаетесь родной системой. Кстати, если вы заглянете в файл "presskey.dat", то можете увидеть там, сколько раз пользователь нажал на клавишу. Для этого просто сосчитайте количество строк с фразой "Нажата клавиша". Можно потом как бы изобразить из себя профессионального хакера и сообщить противнику, сколько раз он нажал на кнопку. Станете кумиром:).
2. Не забудьте самое главное — проверьте дисковод. Если было много легковерного народа, то найденных денег вполне может хватить на лишние 256 Мб оперативной памяти:), которой, как известно, много никогда не бывает.

Если вы уверены, что противник настолько продвинут, что догадается нажать Ctrl+C, можно приготовить сюрприз иного рода. Для этого создаем на том же диске, где у нас лежит файл "autoexec.bat", файл "win.bat", в который записываем следующее:
@echo Произошел сбой устройства 08Fc5Vx0 по адресу 07FF:С27A. Загрузка Windows невозможна.
При наборе слова "win" пользователь просто получит эту надпись и вылетит обратно в Dos. Мне будет искренне жаль того несчастного, который честно попытается понять, что же за ошибка у него произошла. Специально перед отъездом можно даже "случайно забыть" возле компьютера мануал с описаниями ошибок Windows:). Для противодействия особо продвинутому врагу можно переименовать файл "win.com" в какой-нибудь другой для полной паники и безоговорочной капитуляции противника. Абсолютно то же можно сделать, записав сообщение об ошибке в файл "winstart.bat", который нужно создать в директории, где у вас установлена Windows.

Возможные варианты спасения:
При выходе в Dos нужно набрать "cd название_папки_win-dows" (пример: "cd c:\win98" или "c:\windows"), а затем уже печатать "win". А еще лучше держать на диске любой файл-менеджер для Dos'а, где можно быстро и легко запустить сам файл "с:\путь_к_виндовс\win.com".
Остались некоторые косметические штрихи. Мы ведь не хотим, чтобы враг загрузился в "Safe Mode", минуя приготовленные ему сюрпризы... Конечно, нет, скажете вы и будете абсолютно правы. Поэтому открывайте в текстовом редакторе файл "MsDos.sys" и правьте надпись "BotKeys=1" на "BootKeys=0". Если таковой нет, просто допишите в конец: "BootKeys=0".

Про Dos закончили. Пора бы и с "Виндовс" поработать немного. Начнем с моей любимой шутки — выключения Windows сразу после загрузки. Все, что нам для этого понадобится, — Пуск-Выполнить-regedit. Да, именно редактор реестра, поскольку он предоставляет огромные возможности управления операционной системой класса "Окна". Главное в нем — не трогать то, чего не знаешь. Работает — и пусть себе работает, а нам нужно в нем по конкретному адресу: HKEY_LOCAL_MACHINE\ Software\Microsoft\Windows\CurrentVersion\Run. Кликаем правой кнопкой мыши на правую половину окошка и в контекстном меню выбираем "Создать-строковый параметр". Обзываем наш параметр как-нибудь вроде "winmsi32" и щелкаем на него левой кнопкой мышки. Откроется окно из двух полей, где в первом будет название раздела, а вот во второй нужно дописать "rundll32 user,exitwindows"(без кавычек). Единственный недостаток этого способа — то, что для отключения этого автовыключения вам придется загружаться в безопасном режиме и удалять из реестра наш параметр по тому же адресу. Абсолютно аналогично по этому адресу вместо "rundll32 user,exitwindows" можно прописать "rundll32 keyboard,disable", что отключит клавиатуру, или "rundll32 mouse,disable", что отключит мышь. Для тех же целей можно приручить планировщик задач. С ним очень удобно выполнять подобного рода мелкие пакости по времени.

Возможные варианты спасения:
Противник может просто попытаться загрузиться с диска и переустановить всю систему. Правда, у вас включена опция "загрузка с жесткого диска" и стоит пароль на BIOS, ну, а про ломик в руках молодого хакера я уже, кажется, рассказывал:).
Еще один недокументированный глюк Windows — ее красивое падение, если размер файла "system.ini" превышает 64 Кб. Можно создать копию "system.ini" размерчиком около 20 Мб (хотя можно и поменьше, конечно:)), не забыв сохранить старый. Главное, потом при загрузке не забыть в любом файл-менеджере под Dos (Dos Navigator, Norton Commander, VC и т.д.) поменять нормальный файл на увеличенный.

Итак, все вышеприведенные способы годились только в том случае, если у вас нет никаких языков программирования. Если же вы хотите сделать что-нибудь посерьезнее защиты, обход которой — дело минутное для человека, знакомого с ОС MS-DOS, то придется все-таки раздобыть какой-нибудь Turbo Pascal или C++. Для начала найдем в корневом каталоге диска (там, где "auto-exec.bat" лежал) файл "config.sys" и пропишем в него строчку:
"Break = OFF". Это заблокирует возможность нажатия Ctrl+C. Осталось написать саму программку:
{Pascal}
Var s:string;
Begin
repeat
Write ('Введите пароль для доступа к системе: ');
Readln(s);
Until s='Ваш_пароль';
Writeln('Добро пожаловать.');
End.
Программка проста и пойдет на любой версии "Паскаля" без особых проблем. Просто добавьте скомпилированный файл в конец "autoexec.bat" и не забудьте пароля:).

Ну вот, вроде, и все. Единственное, в чем я уверен, — то, что для разбирающегося в компьютерах человека ваша защита, да и любая другая, сработает только в первый раз. Поскольку затем он уже сможет ее обойти без особых проблем. Увы, ничто в этом мире (тем более, компьютерном) не совершенно. Дерзайте, фантазируйте, придумывайте свои методы остановки противника и делитесь ими со мной — вместе посмеемся:).

Паша Либер aka Fireangel
Fireangel@tut.by



Компьютерная газета. Статья была опубликована в номере 50 за 2002 год в рубрике программирование :: разное

©1997-2024 Компьютерная газета