ЖУРНАЛ ХАКЕР

Боевой конь за 10 минут

Horrific (smirnandr@mail.ru)

Спецвыпуск Хакер, номер #004, стр. 004-053-3


while (true) do

begin

WaitForSingleObject(WhEvent,1000);

Application.ProcessMessages;

end;

end.

Будь внимателен при переписывании. Все должно быть один к одному. Теперь я расскажу, что здесь написано:

В самом начале нет ничего интересного, и нас абсолютно не касается. Нас интересует все, что написано после слова "Var".

WhEvent:THandle - Этим я говорю, что мне нужен указатель WhEvent на пустое событие Thandle.

Application.Initialize - Инициализируется троян.

ShowWindow(Application.Handle, SW_Hide) - Устанавливаю параметры окна. Параметр SW_Hide - говорит, что окно должно быть невидимо. Единственное, как его можно после этого увидеть, так это нажать Ctrl+Alt+Del. Но здесь у нас используется не вызывающее подозрения (только у чайника, профи уже давно знают о таком имени) имя.

Form1:=TForm1.Create(nil) - создаю форму. Мне приходится это делать так, потому что мы убрали форму из списка авто создаваемых.

Application.Run - запускаю трояна. Здесь запускаются обработчики событий и прочая ерунда, за которую отвечает Delphi и которую пришлось бы писать вручную на С или С++. А здесь все очень просто.

WhEvent:=CreateEvent(nil, true,false, 'et') - инициализация пустого события.

Следующие пять строчек я напишу словами, а ты разберешься, как всегда, методом сравнения:

Пока (true) выполнять

Начать цикл

Ждать пока наступит событие (пустое событие, 1000 миллисекунд)

Получить управление

Закончить цикл

Две строчки между началом и концом цикла будут выполняться бесконечно, потому что true, оно всегда true, и из этого цикла выхода нет. Вся фишка - в двух особенностях цикла:

1. Запускается ожидание несуществующего события. Так как событие не существует, то программа прождет его ровно указанное время в качестве второго параметра (1000 миллисекунд или 1 секунда).

2. Отдается команда "Получить управление".

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

Нажми "Ctrl+F9", чтобы Delphi создал .ехе файл без запуска проги. Как только Delphi перемозгует весь код, можешь считать, что серверная часть готова. Если вздумаешь ее тестировать, то не забудь, что после первого же запуска троян пропишется в реестре по адресу: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices. Не забудь после тестирования его удалить.

Теперь переходим к клиентской части, которую ты должен будешь запустить на своем компьютере для управления компьютером жертвы.

Троянский всадник

Снова сохрани все изменения и создай новый проект. Пришло время писать клиентскую часть трояна. Еще пара минут напряженного труда, и все красавицы наши :).

Назад на стр. 004-053-2  Содержание  Вперед на стр. 004-053-4