Полидетектор ViruScan (SCAN)

10.4.3. Полидетектор ViruScan (SCAN)

Программа ViruScan имеет свойства как специализированного, так и универсального детектора, но первое является определяющим. Второе же позволяет устанавливать наличие неизвестных вирусов (тех вирусов, которые в пакете еще не зарегистрированы).

SCAN выполняет следующие функции:

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

2) обнаружение вирусоносителей и идентификацию вирусов в них;

3) удаление инфицированных файлов;

4) снабжение файлов и компонентов системной области диска контрольными кодами, ис­пользуемыми в качестве эталонных;

5) проверку целостности файлов и компонентов системной области дисков путем вычисления контрольных сумм и сравнения их с эталонами;

6) регистрацию новых вирусов по спецификациям пользователя и использование этих сведений в своей работе.

Первая функция является основной и не может быть отменена. Остальные функции реализуются факультативно по требованию пользователя.

Нетрудно видеть, что функции ViruScan имеют много общего с функциями VSHIELD. Основное отличие состоит в том, что фильтр тестирует файлы, загружаемые на выполнение, а детектор — заданные файлы.

Сначала SCAN тестирует на наличие вирусов ОЗУ, а затем — специфицированные файлы или системную область заданного диска со всеми программными файлами, на нем содержащимися. При обнаружении вируса выдается сообщение с указанием вирусоносителя, наименования вируса и идентификатора вируса. Если задана проверка целостности, то при ее нарушении также выводится соответствующее сообщение.

ViruScan. может функционировать как на автономных, так и на-подключенных к сети ПЭВМ, но не в состоянии тестировать сетевые приводы файл-сервера.

Для работы дезинфектора нужна ПЭВМ с 256-Кбайт ОЗУ и DOS версии не ниже, чем 2.0.

Запуск детектора в работу осуществляется командной строкой вида

SCAN {d:\dir\pattern}... [/MANY] [/М|/NOMEM] [/А]

[/Е .extl [.ext2] [.ext3]] [/NLZ] [/EXT file]

[/D] [/AV] [/RV] [/CV] [/REPORT file] [/FR]

В ней допустимо указание до десяти аргументов d:, dir или pattern. Для каждого аргумента d: тестированию на наличие вирусов подлежит диск в приводе d, а именно, его системная область и все программные файлы, на нем хранящиеся. SCAN распознает программные файлы по расширению. По умолчанию полагается, что такие файлы имеют расширения BIN, СОМ, EXE, OV?, PGM, PIF, PRG, SYS или ХТР. Для каждого аргумента dir проверке на наличие вирусов подвергаются все программные файлы, содержащиеся в указанном каталоге. Для каждого же аргумента pattern тестированию подлежат все файлы, сопоставимые с заданным образцом. Таким образом, dir является сокращением для dir\*.*, а указание d: в качестве текущего каталога диска в приводе d недопустимо.

Каждый из переключателей в командной строке действует на все аргументы.

Переключатель /MANY обеспечивает проверку на наличие вирусов нескольких дискет в одном приводе без перезапуска детектора.

Переключатели /М и /NOMEM имеют тот тот же смысл, что и для вирус-фильтра VSHIELD.

Переключатель /А обеспечивает тестирование всех файлов, независимо от расширений. Он имеет более высокий приоритет, чем переключатель /Е и используется для более тщательной обработки дисков после обнаружения вирусов.

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

Переключатель /NLZ запрещает тестирование на наличие вирусов исполняемых файлов, сжатых архиватором LZEXE (все равно в таких файлах без их предварительной разархивации вирусы обнаружить не удастся).

Переключатель /ЕХТ указывает на файл file, в котором зарегистрированы новые вирусы. Детектор будет работать с учетом этих сведений. Файл file является текстовым. Каждая его строка описывает новый вирус или содержит комментарий.

Описание вируса состоит из сигнатуры, заключенной в кавычки, за которой следует наименование вируса. Каждый байт сигнатуры представляется шестнадцатеричным кодом, причем коды разделены пробелами. Вместо кода можно указать символ-заменитель ?, соответствующий любому однобайтному коду. Кроме того, вместо кода можно задать и символ-заменитель * в виде *(п), где п — число. Эта конструкция соответствует любой последовательности однобайтных кодов длиной от 0 до n. В одной сигнатуре можно указать до 10 заменителей, а ее длина не должна превышать 99 символов.

Примеры:

1) сигнатуре "Е9 ? СВ" соответствуют строки "Е9 00 СВ", "Е9 01 СВ", ... "Е9 FF СВ";

2) сигнатуре "Е9 *(3) СВ" соответствуют строки "Е9 СВ", "Е9 ? СВ", "Е9 ? ? СВ" и "Е9 ? ? ? СВ", в частности, "Е9 00 СВ", "Е9 EF 06 СВ", "Е9 10 АВ 04 СВ" и многие другие.

Комментарий в file должен начинаться с символа #.

Переключатель /D обеспечивает удаление с уничтожением (перезаписью кодом СЗН) содер­жимого всех обнаруженных файлов-вирусоносителей. Это не лучший вариант нейтрализации вирусов, так как обработанный таким способом файл не может быть восстановлен. Предпочти­тельнее использование дезинфектора Clean-Up. Данный переключатель на системную область дисков не действует. В целях обеспечения сохранности информации при задании /D инфици­рованные файлы будут удаляться только после подтверждения пользователя.

Переключатель /AV служит для вычисления двух контрольных сумм содержимого каждого из указанных файлов (аналогично VALIDATE) и записи их в файлы для использования в качестве эталонных значений фильтром VSHIELD или детектором SCAN. Длина каждого обработанного файла увеличивается на 10 байт. Контрольные суммы компонентов системной области записываются в скрытый файл SCANVAL.VAL, размещаемый в корневом каталоге диска.

Переключатель /RV предназначен для удаления записанных с использованием /АВ эталонных контрольных сумм.

Переключатель /CV обеспечивает включение режима проверки целостности файлов и ком­понентов системной области дисков дополнительно к тестированию на наличие вирусов.

Переключатель /REPORT используется для генерации отчета о проделанной детектором работе и записи его в файл file.

Переключатель /FR обеспечивает диалог на французском языке вместо английского, принятого по умолчанию.

Примеры:

SCAN А: В: — проверить на наличие вирусов диски в приводах А и В;

SCAN А: C:\TP /NOMEM — проверить на наличие вирусов диск в приводе А и файлы в каталоге C:\TP без тестирования ОЗУ.

По завершении работы SCAN генерирует один из следующих кодов возврата:

0 — ни одного вируса не обнаружено;

1 — обнаружен по крайней мере один вирус;

2 — ненормальное завершение (программная ошибка).

Если пользователь прервал работу детектора, то возвращается 0 или 1 — в зависимости от того, сколько вирусов уже обнаружено.

Получить подсказку о формате командной строки SCAN можно, запустив его без аргументов и переключателей.