Прикол на Делфи №2: «Куда делся диск?»

Я уже писал в статье «Как спрятать данные от вирусов и нежелательных просмотров пользователей» о том, что в Windows можно легко монтировать и размонтировать системные тома. Данный способ позволяет спрятать данные от пользователей или от вирусов. Однако ведб можно пошутить и над бедным юзером.

Честно говоря, подобный прикол смотрится гораздо более интересно в виде макроса VBA. Поэтому я все равно приведу этот пример на нем. Тем не менее, это рубрика Делфи и поэтому напишем шутку на нем.

Итак, давайте подумаем, чем можно проучить зазевавшегося пользователя. Вполне возможно, что его можно впечатлить сообщением типа «Вы поймали порнобаннер, на удаление которого у вас есть 5 секунд, после чего ваши данные пропадут». Причем, для пущей эффективности, программа должна переливаться всеми цветами радуги, издавать звук сирены или что-то в этом духе. Кроме того, шутка будет более уместной, если ее сделать наподобие трояна, запускать которую следует в определенный момент, допустив, отловив момент запуска интернета.

К сожалению, несмотря на то, что моя шутка абсолютно безобидна для системы, антивирусы воспринимают ее неоднозначно. Поэтому, чтобы не вы не обвинили меня в распространении «Аццкого вируса!», оставлю компиляцию шутки вам.

Итак, продумаем логику программы. Нам нужно переливание цветов – делаем это простым case по таймеру. Подключение звука – это вообще не проблема. Просто нужно использовать подходящий wav файл. Удаление томов будет осуществляться простым mountvol с параметром d. Я сильно упрощаю задачу, так как хочу вас всего лишь научить делать подобные шутки. Я нарочно не буду делать программу трояном и отлавливать события интернета. Кроме того, эффект был бы гораздо лучше, если бы это выскочило popup окно. Увы, об этом глупо писать в одной статье, поэтому я расскажу обо всем уже в других статьях рубрики «Дельфийские рукописи».

Что ж, как сказал Цезарь, переходя реку Рубикон: «Час пробил!». Приступим к реализации. В качестве инструмента используйте любую версию Делфи. Так как мне часто приходится писать рабочие утилитки на своем нетбуке, то я всегда таскаю с собой бесплатную Portable Turbo Delphi Lite 1.0d, которую вы можете легко найти в сети. Это урезанная portable версия Delphi 2006, но для многих задач ее хватит с лихвой. Тем не менее, можете использовать Delphi 7 и выше.

Забросьте на форму 2 таймера, уберите кнопки закрытии формы и поместите два labela на форму – одну с нашим текстом и вторую с цифрами отсчета. Что ж, теперь можно приступать к работе.

Создайте переменную count, которая и будет делать отсчет. Ее сделаем глобальной, так как дело будет протекать в таймере. Вторая лэйбла будет как раз и отображать отсчет на форме. Думаю, что реализация этого отсчета не такое уж и трудное занятие.

Тоже самое можно сказать и о цветовой палитре. В таймере нужно просто написать код с case, где, в зависимости от рандомизации вернет некоторое число, которое мы будет использовать как идентификатор цвета. Код будет такой:


Var

vb:integer;

begin

Randomize;

vb:=trunc(random (5));

case vb of

1:Color:=clRed;

2:Color:=clGreen;

3:Color:=clYellow;

4:Color:=clLime;

else

Color:=clBlue;

end;

end;

Объяснять код смысла нет – тут все очень просто. Однако в совокупности со звуковым эффектом типа сирены и обратным отсчетом это наверняка заставит испугаться юзера. wav файл вы можете проиграть с помощью процедуры PlaySound(‘c:\….\*.wav’,0,SND_FILENAME)

Правда, здесь одна загвоздка – звук нужно тащить с программой. Есть, конечно, вариант создать wav ресурс и уже из него извлекать, но, боюсь, что код, который я приведу, покажется вам слишком сложным. Кроме того, он практически бесполезен в повседневной жизни.

В принципе, нам остается простая вещь – удалить системные тома из системы. Здесь алгоритм прост – мы получаем имена всех разделов системы, ищем, где находится папка с Windows (этот диск просто нельзя отсоединить) и отсоединяем эти разделы. Как найти разделы я не буду писать, так как уже неоднократно упоминал об этом в рубрике «Делфийские рукописи», но там все просто, думаю, что вы разберетесь.

Отсоединить том очень легко. Мы просто воспользуемся командной mountvol имя_диска /d, которую передадим процедуре WinExec.


WinExec (PChar (‘muntvol ’ + переменная с именем диска + ‘ \D’);

Вот так незатейливо и просто мы немного пощекочем нервы юзерам. Конечно, жаль, что полную версию моей шутки некоторые антивирусы считают вирусом и поэтому я не могу выложить готовую программу. Однако, вы наверняка поняли направление и легко сможете воплотить шутку в жизнь.

Единственное, что хотелось бы добавить в шутку – пропишите в реестре возможность автозапуска шутки. Кроме того, внесите в нее проверку даты для активации. Шутка должна работать в фоновом режиме. Уберите все кнопки с формы, чтобы ее нельзя было закрыть. Кроме того, сделайте так, чтобы форма получила фокус на себя.

Я не хочу приводить пример кода, позволяющего шутке блокировать вызов диспетчера задач или же хук на сочетание клавиш Alt+F4. Мы ведь пишем шутку, а не вредоносную программу. Тем не менее, вы всегда сможете модифицировать программу по своему усмотрению.

Ну и напоследок. Если вы работаете в офисе, всегда можно подшутить подобным образом над коллегами. Поможет нам VBA и Microsoft Office. Вам нужно просто будет создать презентацию, которую «непременно нужно посмотреть» с нашим скриптом –шуткой и при закрытии презентации выполнить скрипт со строкой Shell, где нужно использовать тот же принцип, что и в WinExec. Поверьте, на ковер к начальнику вы сразу же попадете


Добавить комментарий

Внимание! Не будут добавляться комментарии в виде откровенного спама или прямого анкора на свои сайты. Все спамеры будут передаваться в базу Akismet

Подтвердите, что Вы не бот — выберите человечка с поднятой рукой: