Защита программ от компьютерных вирусов 167
Работа процедуры CheckFile может быть подавлена, если программа запускается с ключом /NOANTI. Ключ /NOQUERY разрешает автоматическое удаление обнаруженного вируса без разрешения пользователя. Ключ /NOALARM также разрешает процедуре автоматически удалить вирус, но запрещает выдавать на экран предупреждающее сообщение. Наконец, ключ /NOCOPY запрещает создание резервной копии зараженного файла (с расширением VIR).
Следующая простая программа иллюстрирует технику использования модуля F_Anti. Если Вы скомпилируете эту программу в файл testanti.exe, то после команды
testanti на экране появится сообщение
Установлена защита файла TESTANTI.EXE. при первом запуске программы и
В файле TESTANTI.EXE вирус не обнаружен.
при каждом следующем запуске.
Если запустить программу командой
testanti /noanti на экран будет выведено сообщение
Контроль блокирован ключом /NOANTI.
Uses F_Anti;
begin
case CheckVirusResult of
0 WriteLn('B файле ',ParamStr(0),' вирус не обнаружен.');
1 WriteLn('Установлена защита файла ',aramStr(0),'.');
-1 WriteLn('Вирус удален с разрешения пользователя.');
-2 WriteLn('Вирус удален автоматически.');
-3 WriteLn('Контроль блокирован ключом /NOANTI.')?
-4 WriteLn('Вирус расположен в начале '+
'файла - удаление невозможно.') end end.
6.4. ЗАЩИТА СУЩЕСТВУЮЩИХ ЕХЕ-ФАЙЛОВ
Итак, «вакцинация» вновь разрабатываемых программ не представляет особой сложности. А как защитить уже существующую ЕХЕ— программу? Для этого существуют две возможности: либо использовать отдельную программу, которая хранит ключевую информацию и осуществляет проверку по требованию пользователя (такая программа обсуждается в следующем разделе), либо пристыковать к защищаемой программе небольшой код «вирусного фага» — тогда проверка будет осуществляться автоматически при каждом запуске программы. В этом разделе мы обсудим технику создания и внедрения в защищаемую программу антивируса—фага, т.е. небольшой ассемблерной про—