2. Программа-ревизор ADINF
2. Программа-ревизор ADINF
От всех существующих в настоящее время антивирусных программ ADinf (автор — Д.Мостовой) отличается тем, что он работает с диском непосредственно по секторам через BIOS, не используя DOS, что позволяет успешно обнаруживать казавшиеся невидимыми так называемые Stealth-вирусы, берущие на себя более 20-ти функций DOS, а также вирусы в дисковом драйвере, в том числе новые вирусы, неизвестные ранее. Этого не может ни одна другая антивирусная программа!
— Advanced Diskinfoscope в настоящее время является единственной антивирусной программой, которая при загрузке DOS с винчестера (а не с заклеенной дискеты, как того требуют все остальные программы), при правильном использовании, обнаруживает ВСЕ существующие в настоящее время вирусы.
— Кроме борьбы с вирусами ADinf позволяет следить за целостностью и сохранностью информации на винчестере и за всеми происходящими на диске изменениями, что бывает особенно полезно на "персональных ЭВМ коллективного пользования", широко распространенных в нашей стране.
— Расширение ревизора ADinf — программа ADinf Cure Module (файл ADinfExt.exe), поддерживает небольшую дополнительную базу данных, описывающую файлы, хранящиеся на диске.
В случае обнаружения вируса она позволяет немедленно и надежно вылечить вашу машину. Лечению таким способом поддаются до 97 % существующих и, что самое главное, новых, неизвестных на настоящий момент вирусов.
Принцип работы ревизора ADinf
Принцип работы программ-ревизоров основан на сохранении в таблице основных данных о диске. Таблица содержит образы MASTER-BOOT и BOOT секторов, список номеров сбойных кластеров, схему дерева каталогов и информацию о всех контролируемых файлах. Кроме того, ADinf запоминает и при каждом запуске проверяет, не изменился ли доступный DOS объем оперативной памяти (что бывает при заражении большинством загрузочных вирусов), количество установленных винчестеров, таблицы параметров винчестера в области переменных BIOS (Hard Disk Parameter Table).
При всех этих проверках программа просматривает диск по секторам непосредственно через BIOS и не использует прерывания Int 21h и Int 13h, что позволяет успешно обнаруживать активные маскирующиеся вирусы, находящиеся в памяти и взявшие на себя эти жизненно важные прерывания.
Проверки, производимые ревизором
При первом запуске программа запоминает объем оперативной памяти, находит и запоминает адрес обработчика прерывания Int 13h в BIOS, который будет использоваться при всех последующих проверках, и строит таблицы для проверяемых дисков. При этом проверяется, показывал ли вектор прерывания 13h в BIOS перед загрузкой DOS.
При последующих запусках программа проверяет диски в следующей последовательности:
— Проверяется объем оперативной памяти, доступной DOS, и переменные BIOS.
— Проверяются MASTER-BOOT BOOT MASTER-BOOT сектор проверяется при проверке логического диска С:, а на машинах IBM PC AT D: (для второго физического винчестера). Если обнаружены изменения этих секторов, то можно в режиме диалога сравнить системные таблицы, которые были до и после изменения, и по желанию восстановить прежний сектор. После восстановления измененный сектор сохраняется В файле на диске для последующего анализа.
— Проверяется список номеров сбойных кластеров. Некоторые вирусы помечают хороший кластер как сбойный и "селятся" в нем. ADinf предупредит вас об этом.
— Проверяется дерево каталогов диска. Ищутся вновь заведенные и уничтоженные подкаталоги.
— Проверяются файлы. Ищутся новые, удаленные с диска, переименованные, перемещенные из одного подкаталога в другой и изменившиеся файлы. Проверяется изменение длины и контрольной суммы файла.
Изменения анализируются и, если они по мнению программы, "безобидные", т. е. изменения файлов сопровождаются изменением даты и времени файла, то программа поместит информацию об изменениях в список, который можно просмотреть в режиме диалога или записать на диск в виде протокола проверки. Если же происходят "подозрительные" изменения, то программа предупредит вас о возможности заражения вирусом.
К "подозрительным" изменениям относятся:
— Изменение файла без изменения даты и времени (как поступают большинство из грамотно написанных вирусов);
— Изменение файла с появлением странной даты (число больше 31, месяц больше 12 или год больше текущего). Такими датами некоторые вирусы "помечают" зараженные файлы.
— Изменение файла с появлением странного времени (минут больше 59, часов больше 23 или секунд больше 58).
— Изменение файла, имя которого указано в списке неизменяемых файлов.
Требования к оборудованию
Программа работает на IBM PC XT AT и PS2 с одним пли двумя жесткими дисками и с одним или двумя дисководами для гибких дисков. Программа тестировалась в среде MS-DOS, PC-DOS версии 3.20 — 6.02, а также в среде DR-DOS 5.00 и 6.00. Novell DOS 7.00 и Compaq-DOS 3.31. Программа работает непосредственно с видеопамятью, минуя BIOS. Поддерживаются все графические адаптеры (Hercules, CGA, EGA, VGA). Обеспечивается полная совместимость с MS Windows, DESQview, кэшем HyperDisk версий больше 4.50.
Использование программы
Программа ADinf может запускаться
— из файла AUTOEXEC.BAT;
— из командной строки DOS.
Запуск ADinf из файла AUTOEXEC ВАТ
Для запуска программы ADinf в процессе загрузки машины в файл AUTOEXEC.BAT необходимо добавить строку вида (этот вызов добавляется в файл AUTOEXEC.BAT автоматически при инсталляции программы):
ADinf — d — a — b — l [каталог для протокола>] <диск> [<диск>… <диск>]
Например, предполагая, что программа записана в каталоге C: ADINF.
Более подробно ключи программы рассмотрены ниже.
Запуск ADinf из командной строки DOS
При запуске из командной строки Advanced Diskinfoscope ADinf может работать в пакетном и диалоговом режимах.
Запуск в пакетном режиме
В пакетном режиме ADinf последовательно проверяет диски в соответствии с параметрами, ладанными в командной строке. Для запуска ADinf в пакетном режиме необходимо набрать команду вида:
>ADinf [<ключ>…<ключ>] <диск> [<диск>…<диск>]
Например, если набрать команду
>C: ADINFADinf С: D: Е:,
то будут последовательно проверены диски С: D: и E:. В этом примере предполагается, что программа ADinf находится в подкаталоге ADINF.
Ключи программы
Ключи программы задаются в командной строке. Они должны начинаться со знака "-" или "/" и могут задаваться как маленькими, так и заглавными буквами. Знаком "*" помечены ключи, работающие только в пакетном режиме запуска программы ADinf.
1) * Ключ — а устанавливает режим для AUTOEXEC.BAT, в котором исключены некоторые малозначащие диалоговые остановки.
2) * Ключ — Ь отменяет закрашивание фона экрана и оставляет "прозрачный" фон. Такой режим, на наш взгляд, улучшает эстетическое восприятие программы при запуске в файле AUTOEXEC.BAT.
3) Ключ — сl[<путь>] позволяет записать протокол проверки на диск в каталог, указанный после ключа — cl. Например — clC: ADINF. Если указать ключ — cl без пути, то протокол будет записан в текущий каталог. Если файл с протоколом существует, то протокол дописывается в существующий файл. Протокол проверки можно также записать, не задавая ключа — cl, а выбрав вариант "Записать протокол изменений" из меню после просмотра результатов проверки диска.
4) Ключ — co[lor] — использовать цвета для цветного монитора.
5) * Ключ — d включает режим работы 1 раз в сутки, что экономит ваше время при перезагрузках, если вызов программы ADinf стоит в файле AUTOEXEC.BAT.
6) Ключ — е — не ставить атрибут Hidden файлам с таблицами.
7) Ключ — f включает режим быстрой проверки без расчета контрольных сумм файлов. В этом режиме невозможно обновление информации в таблице. Этот ключ аналогичен включению опции "Режим fast" в диалоговом режиме работы программы.
8) Ключ — g — отменить контроль Hard Disk Parameter Table в области переменных BIOS.
9) Ключ — i включает "информационный" режим, при котором после проверок диска таблицы не обновляются. Этот ключ аналогичен включению опции "Режим info" в диалоговом режиме работы программы. Нельзя использовать одновременно ключи — i и — d.
10) Ключ — l|<путь>] позволяет записать протокол проверки на диск в каталог, указанный после ключа — l. Например — lC: ADINF. Если указать ключ — l без пути, то протокол будет записан в текущий каталог. От ключа — cl отличается тем, что дозапись в существующий файл не производится и файл протокола замещает существовавший.
11) Ключ — m — не использовать мышь.
12) Ключ — mo[no] — использовать цвета для монохромного монитора. ADinf автоматически определяет, цветной или монохромный монитор присутствует в системе. Однако, если вы хотите на цветном мониторе получить черно-белое изображение, используйте этот ключ.
Часто это бывает полезно на переносных компьютерах с LCD VGA мониторами.
13) Ключ — n принудительно отменяет заставку программы там, где она должна быть. По умолчанию заставка выдается в диалоговом режиме. В остальных случаях в целях экономии времени она отсутствует.
14) Ключ — nam — No Arrow Mouse — использовать стандартный курсор мышц.
15) Ключ — nr — не ожидать ретрейсов при работе с CGA-адаптером.
16) Ключ — os тем, кому больше нравился старый стиль оформления ADinf (до версии 9.00), позволяет запустить ADinf в прежнем стиле (Old Style). При использовании этого ключа не производится загрузка шрифта в знакогенератор адаптеров EGA VGA, поэтому он может быть полезен, если возникают конфликты ADinf с какими-либо резидентными программами, например русификаторами.
17) Ключ — р включает режим "PERSONAL", предусмотренный специально для пользователей "персональных ЭВМ коллективного пользования". В обычном режиме программа ADinf создает свои таблицы в корневом каталоге контролируемых дисков. В режиме "PERSONAL" таблицы создаются в том каталоге, где находится программа ADinf. Вы можете иметь копию этой программы в своем каталоге или на дискете и, приходя на машину, смотреть, что изменилось во время вашего отсутствия. Этот ключ аналогичен опции "Таблицы личные" в диалоговом режиме работы программы.
Однако, этим режимом надо пользоваться достаточно осторожно.
Если вы придете с дискетой, на которой построены таблицы для одной машины, на другую машину, то ничего хорошего вы не обнаружите. А если вы попытаетесь восстановить MASTER-BOOT или BOOT сектор, то я вам не завидую.
18) Ключ — r — работа в среде DR-DOS. Программа ADinf определяет, что она находится в среде DR-DOS по номеру версии системы.
Если на запрос версии система отвечает 3.31 (что верно для DR-DOS 5.00 и 6.00), то программа не использует недокументированные возможности MS-DOS. В последующих версиях системы DR-DOS может измениться возвращаемый номер версии. Если программа зависает при запуске в среде DR-DOS версий старше, чем 5,00, попробуйте запустить ее с ключем — r. Этот ключ необходимо использовать также при работе в Compaq-DOS или другой операционной системе, не полностью совместимой с MS-DOS.
19) Ключ — s отключает звуковое сопровождение программы. Этот ключ аналогичен опции "Звук выключен" в диалоговом режиме работы программы.
20) Ключ — Setup задает каталог или полное имя для записи файла с запоминаемым состоянием ADinf. По умолчанию файл с именем A-Dinf- записывается в тот же каталог, где расположена программа ADinf.exe. Переназначить каталог для записи файла с установками бывает необходимо, если ADinf установлен на защищенный от записи раздел диска. Для этого необходимо задать путь в строке запуска ADinf в виде:
ADinf — Sctup: D: READWR
В этом примере состояние программы будет сохраняться в файле с полным именем
D: READWRA-Dinf-.
Существует возможность сохранять несколько состояний программы с разными списками расширений, именами таблиц, методом доступа к дискам и т. д. Для этого необходимо в строке запуска задать имя файла для записи установок, например в случае
ADinf — Setup: My_Setup
будет использован файл Му_Sеtuр, расположенный в каталоге D: SET.
ПРИМЕЧАНИЕ. В случае некорректного задания полного пути или полного имени файл с установками не записывается без выдачи диагностического сообщения.
21) Ключ — Stop. Если за вирусную безопасность на фирме отвечает системный программист, который настраивает программы защиты, а на компьютерах работают только пользователи, не знакомые с системными тонкостями, то ADinf необходимо настроить так, чтобы он никогда не сообщал об изменениях. Это достигается правильным выбором списка расширении контролируемых файлов и назначением рабочих каталогов. При задании ключа — Stop в строке вызова ADinf из AUTOEXEC.BAT любое изменение, зафиксированное ревизором ADinf, будет приводить к выдаче сообщения о необходимости вызвать системного программиста, и продолжать работать на машине до прихода ответственного системного программиста будет нельзя.
Внимание системным программистам!
1. После добавления этого ключа в строку вызова ADinf в файле AUTOEXEC.BAT не забудьте обновить таблицы ревизора, иначе ADinf при следующей проверке диска зафиксирует изменение файла AUTOEXEC.BAT и не даст продолжить работу.
2. Когда ADinf останавливается, выдавая сообщение о необходимости вызвать системного программиста, нажатие на клавиши <Esc> или <Еnter> приводит к перезагрузке компьютера. Выйти из этого состояния можно только нажав клавишу <F10>. Однако не говорите об этом своим пользователям!
22) * Ключ — w включает режим построения новых таблиц для диска.
23) Ключ -13 отключает проверку, показывает ли вектор прерывания в область BIOS. Отключать эту проверку необходимо, если на компьютере используется Shadow Bios, допускающий запись в область адресов ПЗУ. В этом случае только при первом запуске ADinf на машине необходимо отключить использование Shadow Bios, чтобы ADinf смог найти и запомнить адрес обработчика Int 13h. Затем можно включить использование Shadow Bios и запускать ADinf с ключем -13.
24) Ключ -76 отменяет обработку прерывания 76h.
Если при запуске ADinf в командной строке не указано ни одно имя диска, то программа запускается в диалоговом режиме работы.
Например:
C: ADINF>ADinf
При запуске ADinf в диалоговом режиме верхняя строка содержит основное меню диалогового режима. Это меню содержит следующие альтернативы: ADinf, ДИСКИ, РАБОТА, ОПЦИИ, КОНЕЦ. При запуске ADinf автоматически входит в меню "РАБОТА", раздел "ПРОВЕРИТЬ ВСЕ". Для проверки всех дисков, на которых были созданы таблицы ADinf, достаточно просто нажать на <Enter>.
Вы можете перемещаться по альтернативам, используя клавиши перемещения курсора вправо и влево или манипулятор мышь. Для выбора альтернативы необходимо нажать на клавишу <Ввод>.
Мы не будем детально описывать работу Adinf в диалоговом режиме, поскольку общение с программой в этом режиме не вызывает сложностей благодаря "дружественному" интерфейсу на русском языке.
Кроме того, в стандартную поставку программного продукта входит текстовый файл с подробным описанием работы ревизора Adinf.
Работа с дискетами
Подавляющее большинство вирусов заносится на компьютер на дискетах. Причем вы можете заразить свою изначально чистую от вирусов дискету, просто установив ее в дисковод зараженного компьютера и, например, только просмотрев ее каталог. Заметим, что, наоборот, заразить компьютер с дискеты, просто воткнув ее в дисковод невозможно — надо запустить хотя бы одну зараженную программу, находящуюся на дискете, или загрузить компьютер с зараженной дискеты.
Чтобы быть спокойным за "здоровье" своих дискет и дискет, передаваемых кому-либо, ADinf позволяет снабдить дискету таблицей-сертификатом с полной информацией о содержимом. Перед передачей дискет создайте на них таблицы ADinf. Если у получателя дискет установлен Advanced Diskinfoscope, то он сможет проверить целостность находящейся на дискете информации. А вы, получив такую дискету, можете быстро проверить, не заражена ли она вирусом.
Таблица, создаваемая на дискете, содержит полную информацию о конфигурации ADinf. необходимую для проверки (список проверяемых файлов, типы контрольных сумм и даже имена индивидуальных Viewer-ов и редакторов, назначенных для файлов этой дискеты). Поэтому ваша конфигурация программы ADinf может не совпадать с конфигурацией программы, при помощи которой создавались таблицы на проверяемой дискете.
Полезные замечания
1. Перед тем, как первый раз создавать таблицы ADinf, проверьте свой диск на наличие известных вирусов с помощью какой-нибудь надежной антивирусной программы, например Aidstest или SCAN.
2. Проверяйте свой диск несколько раз в день, особенно если вы пользовались дискетами.
3. Программа ADinf BIOS читает диск, обращаясь непосредственно в BIOS.
Эти обращения не могут контролироваться не только вирусами, но и другими резидентными программами. Поэтому могут возникнуть проблемы при использовании ADinf (SmartDrv и др.), оптимизирующими не только чтение с диска, но и запись на диск. Если кэширование оптимизирует только чтение данных, то ADinf и программа кэширования пытаются одновременно обратиться в BIOS, что недопустимо. При использовании кэширования, оптимизирующего запись, можно рекомендовать следующее.
Во-первых, можно выключать кэширование записи на диск перед запуском ADinf, а после окончании работы ADinf включать опять.
Например, при использовании программы SmartDrv.exe для отключения кэширования записи на диски С: и D: необходимо выдать команду SmartDrv С D, а для включения кэширования SmartDrv С+ D+.
Второй способ заключается в том, что в ADinf можно назначить доступ ко всем дискам кроме диска С: через Int 13h. Для этого надо войти в меню ОПЦИИ->НАСТРОЙКИ->ОБРАЩЕНИЕ К ДИСКАМ. ADinf начнет работать через кэш и конфликты прекратятся, однако надо помнить, что надежность обнаружения вирусов при этом снижается.
ПРИМЕЧАНИЕ. Начиная с версии 9.00 ADinf полностью поддерживает совместимость с программой кэширования HypcrDisk версий выше 4.50. При использовании этой программы перечисленные выше проблемы не возникают.