Файловые вирусы размещаются в файлах компьютерных систем имогут внедряться только в исполняемые файлы: командные файлы (файлы, состоящие из команд операционной системы), саморазархивирующиеся файлы, пользовательские и системные программы в машинных кодах, а также в документы (таблицы), имеющие макрокоманды.
Макрокоманды или макросы представляют собой исполняемые программы для автоматизации работы с документами (таблицами). Поэтому такие документы (таблицы) можно рассматривать как исполняемый файл.
Для IBM - совместимых ПЭВМ вирус может внедряться в файлы следующих типов:
- командные файлы (ВАТ);
- загружаемые драйверы (SYS);
- программы в машинных (двоичных) кодах (ЕХЕ, СОМ);
- документы Word (DOC) с версии 6.0 и выше;
- таблицы EXCEL (XLS).
Макровирусы могут внедрятся и в другие файлы, содержащие макрокоманды.
Файловые вирусы могут размещаться в начале, середине и конце заражаемого файла. Но их заголовки размещаются, как правило, в начале файла.
Независимо от места расположения вируса в теле зараженного файла после передачи управления файлу первыми выполняются команды вируса.
В начало файла вирус внедряется одним из трех способов:
1. Переписывание начала файла в его конец, а на освободившееся место записывается вирус.
2. Считывание вируса и зараженного файла в оперативную память, объединение их в один файл и запись его на место файла.
3. Вирус записывается в начало файла без сохранения содержимого. В этом случае зараженный файл становится неработоспособным.
В середину файла вирус может быть записан также различными способами. Файл может «раздвигаться», а в освободившееся место может быть записан вирус. Вирус может внедряться в середину файла без сохранения участка файла, на место которого помещается вирус. Есть и более экзотические способы внедрения вируса в середину файла. Например, вирус «Mutant» применяет метод сжатия отдельных участков файла, при этом длина файла после внедрения вируса может не измениться,
Чаще всего вирус внедряется в конец файла. При этом, как и в случае с внедрением вируса в середину файла, первые команды файла заменяются командами перехода на тело вируса.
Обобщенно алгоритм заражения файла может быть представлен в виде следующей последовательности шагов:
Шаг 1. Резидентный вирус проверяет, заражена ли оперативная память, и при необходимости заражает ее. Нерезидентный вирус ищет незараженные файлы и заражает их.
Шаг 2. Выполняются действия по сохранению работоспособности программы, в файл которой внедряется вирус (восстановление первых байт программы, настройка адресов программ и т. д.)
Шаг 3. Осуществляется вредительская функция вируса, если выполняются соответствующие условия.
Шаг 4. Передается управление программе, в файле которой находится вирус.
При реализации конкретных вирусов состав действий и их последовательность могут отличаться от приведенных в алгоритме.
Особое место среди файловых вирусов занимают макровирусы. Макровирусы представляют собой вредительские программы, написанные на макроязыках, встроенных в текстовые редакторы, электронные таблицы и др.
Для существования вирусов в конкретной системе (редакторе) необходимо, чтобы встроенный в нее макроязык имел следующие возможности:
* привязку программы на макроязыке к конкретному файлу;
* копирование макропрограмм из одного файла в другой;
* получение управления макропрограммой без вмешательства пользователя.
Таким условиям отвечают редакторы MS Word, MS Office, Ami Pro, табличный процессор MS Excel. В этих системах используются макроязыки Word Basic и Visual Basic.
При выполнении определенных действий над файлами, содержащими макропрограммы (открытие, сохранение, закрытие и т. д.), автоматически выполняются макропрограммы файлов. При этом управление получают макровирусы, которые сохраняют активность до тех пор, пока активен соответствующий редактор (процессор). Поэтому при работе с другим файлом в «зараженном редакторе (процессоре)», он также заражается. Здесь прослеживается аналогия с резидентными вирусами по механизму заражения.
Для получения управления макровирусы, заражающие файлы MS Office, как правило, используют один из приемов:
1) в вирусе имеется автомакрос (выполняется автоматически, при открытии документа, таблицы);
2) в вирусе переопределен один из стандартных макросов, который выполняется при выборе определенного пункта меню;
3) макрос вируса автоматически вызывается на выполнение при нажатии определенной клавиши или комбинаций клавиш.
Первый макровирус WinWord. Concept, поражающий документы Word, появился летом 1995 года. Вредительская функция этого вируса заключается в изменении формата документов текстового редактора Word в формат файлов стилей.
Загрузочные вирусы являются резидентными. Заражение происходит при загрузке операционной системы с дисков.
После включения ЭВМ осуществляется контроль ее работоспособности с помощью программы, записанной в постоянном запоминающем устройстве. Если проверка завершилась успешно, то осуществляется считывание первого сектора с гибкого или жесткого диска.
Порядок использования дисководов для загрузки задается пользователем при помощи программы Setup. Если диск, с которого производится загрузка ОС заражен загрузочным вирусом, то обычная реализация работы вируса осуществляется следующей последовательностью:
Шаг 1. Считанный из 1-го сектора диска загрузочный вирус (часть вируса) получает управление, уменьшает объем свободной памяти ОП и считывает с диска тело вируса.
Шаг 2. Вирус переписывает сам себя в другую область ОП, чаще всего - в старшие адреса памяти.
Шаг 3. Устанавливаются необходимые вектора прерываний (вирус резидентный).
Шаг 4. При выполнении определенных условий производятся деструктивные действия.
Шаг 5. Копируется Boot-сектор в ОП и передается ему управление.
Если вирус был активизирован с гибкого диска, то он записывается в загрузочный сектор жесткого диска. Активный вирус, постоянно находясь в ОП, заражает загрузочные сектора всех гибких дисков, а не только системные диски.
Заражение рабочих гибких дисков загрузочными вирусами выполняется в расчете на ошибочные действия пользователя ЭВМ в момент загрузки ОС. Если установлен порядок загрузки ОС сначала с гибкого диска, а затем - с жесткого, то при наличии гибкого диска в накопители будет считан 1-й сектор с гибкого диска. Если диск был заражен, то этого достаточно для заражения ЭВМ. Такая ситуация наиболее часто имеет место при перезагрузке ОС после «зависаний» или отказов ЭВМ.