|

Рождение дьявола
Xakep, номер #016, стр. 016-058-1
Ramhak O`hady (konung@ic.ru)
Раз уж этот номер журнала посвящен халяве в Сети и способам ее [халявы] получения, редактор стал пинать меня изо всех сил, чтобы я оторвал свою ленивую задницу от терминала и написал что-нибудь стоящее. Действительно относящееся к делу и теме номера. Ну что ж, подумал я, почесав репку, "партия сказала - надо! комсомол ответил - есть!".
Ультразвук: узнайте пол ребенка
Трояны, трояны, трояны... писать их на самом деле довольно просто, если, конечно, знать точно, что писать :-). Поэтому сначала нужно разработать концепцию, схему, план действий, по которому будет действовать троян и тот, кто им воспользуется :-). Напишем простенький троянчик, который при попадании на компьютер поселится в виде баггла (в шотландском народном фольклоре - это маленькое существо, помогающее человеку по дому, то есть что-то вроде нашего домового) и будет, например, каждый месяц исправно посылать емыльной почтой файл user.dat. (реализацию для %user%.pwl я оставляю на рассмотрение читателю - переделать/дописать будет несложно). Пусть, для определенности и нашего спокойствия, он тихо и незаметно удалится с машины несчастного LMD, скажем, через пару-тройку месяцев работы (то есть пары-тройки "рассылок почты") :-).
Писать я буду на Delphi, так как это практически самый простой и доступный язык для начинающего кодера. Да и для простого человека, имеющего достаточный опыт работы с компом, все здесь будет довольно прозрачно для понимания.
Схватки, бред, потеря сознания
Первым делом... нет, не самолеты :-). Первым делом прибить все окна свежесозданного (с помощью File|New Application) проекта в Delphi, включая главную форму. Проект прибивать не нужно :-). Чтобы поглядеть, что еще осталось, можно ткнуть "серым существом с длинным хвостом" в View|Project Source. Приблизительно это будет выглядеть так:
program Project1;
uses
Forms;
{$R *.RES}
begin
Application.Initialize;
Application.Run;
end.
Все, что касается Application, можно удалить - троян должен вести себя тихо, а потому всякие всплывающие окна и кнопки в панели задач нам не нужны. Нужно удалить также и строчку {$R *.RES}, чтобы не тянуть с собой ненужные иконки и прочую лабуду, так усердно навешиваемую Дельфей. Forms тоже удаляем, поскольку форм у нас не осталось :-). Но (!) нужно будет подключить пару-тройку других модулей, которые действительно будут задействованы:
uses
Windows, // здесь описаны почти все документированные сообщения и
// библиотечные функции виндовза
Registry, // это модуль для работы с системным реестром
Mapi, // а это - чтобы отправлять и принимать сообщения по почте
// и не только. Но нас интересует только отправка ;-)
SysUtils; // вспомогательная библиотека - полезные функции для работы
// со строками и датой/временем.
Появилась головка
Прежде чем приступить собственно к созданию рассылки :-), нужно убедиться, что все будет происходить совершенно незаметно. Естественно, что мигание лампочек на панели модема не спрячешь, но в остальном все можно провернуть без шума и пыли. В панели задач троян не засветится, потому что у него нет главного окна и, соответственно, некуда переключать фокус. А вот по ctrl+alt+del, то есть в списке всех задач, он будет светиться - да еще как! Но эту проблему можно решить просто - достаточно прикинуться невинным скринсавером, чтобы виндовза не показывала его в этом списке. Для этого необходимо воспользоваться специальной функцией RegisterServiceProcess. К сожалению, эту функцию не описывают в стандартных модулях Delphi, поэтому придется описать ее самостоятельно и создать соответствующую процедуру вызова:
Содержание Вперед на стр. 016-058-2
|