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

Автор: Игорь Гульев
Издательство:
Серия:
Жанр произведения: Компьютеры: прочее
Год издания: 0
isbn: 5-89818-087-7
Скачать книгу
и заполняется блок памяти для переменных среды.

      3. Создается блок памяти для PSP и программы (сегмент:0000h – PSP; сегмент+0010h:0000h – программа). В поля PSP заносятся соответствующие значения.

      4. Адрес DTA устанавливается равным PSP:0080h.

      5. В рабочую область загрузчика считывается форматированная часть заголовка EXE-файла.

      6. Вычисляется длина загрузочного модуля по формуле: Size=((PageCnt*512)–(HdrSize*16))–PartPag.

      7. Определяется смещение загрузочного модуля в файле, равное HdrSize*16.

      8. Вычисляется сегментный адрес (START_SEG) для загрузки – обычно это PSP+10h.

      9. Считывается в память загрузочный модуль (начиная с адреса START_SEG:0000).

      10. Для каждого входа таблицы настройки:

      a) читаются слова I_OFF и I_SEG;

      b) вычисляется RELO_SEG=START_SEG+I_SEG;

      c) читается слово по адресу RELO_SEG:I_OFF;

      d) к прочитанному слову прибавляется START_SEG;

      e) результат запоминается по тому же адресу (RELO_SEG:I_OFF).

      11. Распределяется память для программы в соответствии с MaxMem и MinMem.

      12. Инициализируются регистры, выполняется программа:

      a) ES=DS=PSP;

      b) АХ=результат проверки правильности идентификаторов драйверов, указанных в командной строке;

      c) SS=START_SEG+ReloSS, SP=ExeSP;

      d) CS=START_SEG+ReloCS, IP=ExeIP.

      Классификация EXE-вирусов

      EXE-вирусы условно можно разделить на группы, используя в качестве признака для деления особенности алгоритма.

      Вирусы, замещающие программный код (Overwrite)

      Такие вирусы уже стали раритетом. Главный их недостаток – слишком грубая работа. Инфицированные программы не исполняются, так как вирус записывается поверх программного кода, не сохраняя его. При запуске вирус ищет очередную жертву (или жертвы), открывает найденный файл для редактирования и записывает свое тело в начало программы, не сохраняя оригинальный код. Инфицированные этими вирусами программы лечению не подлежат.

      Вирусы-спутники (Companion)

      Эти вирусы получили свое название из-за алгоритма размножения: к каждому инфицированному файлу создается файл-спутник. Рассмотрим более подробно два типа вирусов этой группы:

      Вирусы первого типа размножается следующим образом. Для каждого инфицируемого EXE-файла в том же каталоге создается файл с вирусным кодом, имеющий такое же имя, что и EXE-файл, но с расширением COM. Вирус активируется, если при запуске программы в командной строке указано только имя исполняемого файла. Дело в том, что, если не указано расширение файла, DOS сначала ищет в текущем каталоге файл с заданным именем и расширением COM. Если COM-файл с таким именем не найден, ведется поиск одноименного EXE-файла. Если не найден и EXE-файл, DOS попробует обнаружить BAT (пакетный) файл. В случае отсутствия в текущем каталоге исполняемого файла с указанным именем поиск ведется во всех каталогах, доступных по переменной PATH. Другими словами, когда пользователь хочет запустить программу и набирает в командной строке только ее имя (в основном так все и делают), первым управление получает вирус, код которого находится в COM-файле. Он создает COM-файл еще к одному или нескольким EXE-файлам (распространяется),