Скрин-сэйвер «Нюхач»

Николай «GorluM» Андреев

Хакер, номер #077, стр. 077-112-1

(gorlum@real.xakep.ru)

Пишем собственный хранитель экрана

Вирусы, трояны, шпионы, боты, ботнеты – это все, безусловно, интересно и безумно полезно. Но хочется чего-нибудь красивого, для души. Чего-нибудь, чем можно было бы похвастаться перед подружками. Нет, дорогой, я не о стэковом полиморфизме, хотя это тоже ничего идея. В этом материале я хочу познакомить тебя с ранее невиданной отраслью кодинга – с мирным программированием. Без убийств файервалов, обходов антивирусов, нулевого кольца и прочей бесовщины. Зато с консолью на весь экран, raw-сокетами и кучей ярких цветов.

По-моему, нет ничего более мирного на всем компьютерном свете, чем хранитель экрана. Тихо спокойно сидит в системе, никого не трогает, загружается и жрет ресурсы только когда пользователь дрыхнет – в общем, паинька. У меня слова «хранитель экрана» ассоциируются с небезызвестной бегущей строкой и ломаными линиями. Наверняка, ты уже испытал все «прелести» этих виндовых заставочек. Имхо, больший идиотизм сложно придумать. Это же надо – куча ломаных на экране на черном фоне – здорово. А как информативно! Или бегущая строка – ее можно сделать курсивом или болдом. Я уже вижу заголовки газет: «Человек скончался на рабочем месте от просмотра бегущей строки Windows». Нет, так дело не пойдет. Надо срочно что-то предпринять.

Естественно, разбивание монитора в момент появления хранителя – не самый оптимальный способ сделать просмотр приятным или даже полезным. И погоди лезть в настройки экрана отключать вообще все заставки. Мы поступим хитрее. Возьмем и напишем свой хранитель, да такой, чтобы полностью удовлетворял потребностям среднестатистического хакера (т.е. нашим).

[что такое хранитель экрана?]

Ну, конечно, ты знаешь, что такое хранитель экрана. Я имел в виду, что он собой представляет с программисткой извращенной точки зрения. По правде говоря, ничего страшного и неожиданного. Скрин-сэйвер - это самое ОБЫЧНОЕ приложение, каких сотни установлено у тебя на компьютере. Отличается от общей массы он лишь своим расширением *.scr и хитрым способом запуска. Хотя хитрым этот способ можно назвать лишь с очень большой натяжкой. Он простой и древний как DOS. Дело в том, что хранителю надо знать, в каком режиме выполняться. И сотрудники MS не придумали ничего лучше, как получать информацию о типе запуска из командной строки. К примеру, когда система запускает скрин-сэйвер для нормальной полноэкранной работы, она передает ему в параметрах командной строки ключ “/S”. Хранитель считывает ключ и запускает ни окно для редактирования настроек, ни программу для предпросмотра, а полноэкранный режим, ничего больше. Ключей, как ты уже догадался, хранители экрана понимают несколько:

/S – для нормально запуска.

/P – для запуска в режиме предварительного просмотра. Например, захочешь ты сделать для скрин-сэйвера хорошенькую превьюшку – придется этот ключик обрабатывать. При этом придется учесть, что сразу после ключа в командной строке будет следовать хэндл окна просмотра, в котором и надо будет рисовать мини-копию заставки.

Содержание  Вперед на стр. 077-112-2
ttfb: 3.5970211029053 ms