При первом запуске программа запоминает объем оперативной памяти, находит и запоминает адрес обработчика прерывания Int 13h в BIOS, который будет использоваться при всех последующих проверках, и строит таблицы для проверяемых дисков. При этом проверяется, показывал ли вектор прерывания 13h в BIOS перед загрузкой DOS.

При последующих запусках ADinf проверяет объем оперативной памяти, доступной DOS, переменные BIOS, загрузочные сектора, список номеров сбойных кластеров (так как некоторые вирусы, записавшись в кластер, помечают его, как сбойный, чтобы их не затёрли другие данные, а также не обнаружили примитивные антивирусы). К тому же антивирус ищет вновь созданные и уничтоженные подкаталоги, новые, удаленные, переименованные, перемещённые и изменившиеся файлы (проверяется изменение длины и контрольной суммы). Если ADinf обнаружит, что, изменился файл из списка неизменяемых, либо в файле произошли изменения без изменения даты и времени, а также наличие у файла странной даты (число больше 31, месяц больше 12 или год больше текущего) или времени (минут больше 59, часов больше 23 или секунд больше 59), то он выдаст предупреждение о том, что возможно заражение вирусом.

Если обнаружены изменения BOOT-секторов, то можно в режиме диалога сравнить системные таблицы, которые были до и после изменения, и по желанию восстановить прежний сектор. После восстановления измененный сектор сохраняется в файле на диске для последующего анализа. Новые сбойные кластеры (вернее информация о них в FAT) могут появиться после запуска какой-либо утилиты, лечащей диск (например, NDD) или благодаря действиям вируса. Если Adinf выдал сообщение, а пользователь не запускал никаких подобных утилит, то, скорее всего в компьютер забрался вирус. При получении такого сообщения следует продолжить проверку, внимательно следя за всеми сообщениями об изменениях файлов и загрузочных секторов. Если в системе действительно вирус, то такие сообщения не заставят себя долго ждать (ведь если все тело вируса будет находиться в "сбойном" кластере, ему никогда не передастся управление).

После проверки ADinf выдаёт сводную таблицу, сообщающую об изменениях на диске. По таблице можно перемещаться стрелками и просматривать подробную информацию, нажав ENTER на интересующем пункте. Существует возможность перехода к любому пункту с помощью "быстрых" клавиш. Изменившиеся файлы можно просмотреть в классическом режиме (шестнадцатеричный дамп / ASCII-коды) с помощью встроенного вьюера, который читает диск через BIOS. Можно также воспользоваться внешним вьюером, предварительно указав к нему путь. Подключив внешний редактор, можно отредактировать изменившийся файл.

Не совсем привычно выглядит форма, в которой ADinf сообщает об обнаруженных подозрительных изменениях: вместо выдачи сообщения о конкретных изменениях он выводит красное окно со списком всех возможных и помечает галочкой пункты, соответствующие изменениям, произошедшим в настоящий момент. Если после получения такого сообщения нажать ESC, то программа запросит о дальнейших действиях: обновить информацию о диске, не обновлять её, лечить (при наличии лечащего модуля ADinf Cure Module) или записать протокол. Для лечения можно воспользоваться внешним антивирусом, загрузив его из окна работы с DOS, которое вызывается комбинацией клавиш ALT+V.

Заключение

Ни один тип антивирусных программ по отдельности не дает полной защиты от вирусов. Лучшей стратегией защиты от вирусов является многоуровневая, "эшелонированная" оборона. Средствам разведки в "обороне" от вирусов соответствуют программы-детекторы, позволяющие проверять вновь полученное программное обеспечение на наличие вирусов. На переднем крае обороны находятся программы-фильтры. Эти программы могут первыми сообщить о работе вируса и предотвратить заражение программ и дисков. Второй эшелон обороны составляют программы-ревизоры, программы-доктора и доктора-ревизоры. Самый глубокий эшелон обороны - это средства разграничения доступа. Они не позволяют вирусам и неверно работающим программам, даже если они проникли в компьютер, испортить важные данные.

Чего ожидать от компьютерного андеграунда в последующие годы? Скорее всего основными проблемами останутся: 1) полиморфик-DOS-вирусы, к которым добавятся проблемы полиморфизма в макро-вирусах и вирусах для Windows и OS/2; 2) макро-вирусы, которые будут находить все новые и новые приемы заражения и скрытия своего кода в системе; 3) сетевые вирусы, использующие для своего распространения протоколы и команды компьютерных сетей.

Пункт 3) находится пока только на самой ранней стадии - вирусы делают первые робкие попытки самостоятельно распространять свой код по MS Mail и пользуясь ftp, однако все еще впереди.

Не исключено, что появятся и другие проблемы, которые принесут немало неприятностей пользователям и достаточное количество неурочной работы разработчикам антивирусных программ. Но все проблемы, когда-либо встававшие в истории развития вирусов, были довольно успешно решены. Скорее всего так же успешно будут решаться и будущие проблемы, пока еще только витающие идеями в воспаленном разуме вирусописателей.

Что будет послезавтра и как долго вообще будут существовать вирусы? Для того чтобы ответить на этот вопрос следует определить, где и при каких условиях водятся вирусы.

Основная питательная среда для массового распространения вируса в ЭВМ обязана содержать следующие необходимые компоненты:

· незащищенность операционной системы (ОС);

· наличие разнообразной и довольно полной документации по OC и «железу»;

· широкое распространение этой ОС и этого «железа».

Следует отметить, что понятие операционной системы достаточно растяжимое. Например, для макро-вирусов операционной системой являются редакторы Word и Excel, поскольку именно редакторы, а не Windows предоставляют макро-вирусам (т.е. программам на Бейсике) необходимые ресурсы и функции.

Если в операционной системе присутствуют элементы защиты информации, как это сделано практически во всех ОС, вирусу будет крайне трудно поразить объекты своего нападения, так как для этого потребуется (как минимум) взломать систему паролей и привилегий. В результате работа, необходимая для написания вируса, окажется по силам только профессионалам высокого уровня (вирус Морриса для VAX - пример этому). А у профессионалов, на мой взгляд, уровень порядочности все-таки намного выше, чем в среде потребителей их продукции, и, следовательно, число созданных и запущенных в большую жизнь вирусов еще более сократится.

Для массового производства вирусов также необходимо и достаточное количество информации о среде их обитания. Какой процент от числа системных программистов, работающих на мини-ЭВМ в операционках UNIX, VMS и т.д. знает систему управления процессами в оперативной памяти, полные форматы выполняемых файлов и загрузочных записей на диске? (т.е. информацию, необходимую для создания вируса). И следовательно, какой процент от их числа в состоянии вырастить настоящего полноценного зверя? Другой пример - операционная система Novell NetWare, достаточно популярная, но крайне слабо документированная. В результате мне пока не известно ни одного вируса, поразившего выполняемые файлы Novell NetWare, несмотря на многочисленные обещания вирусописателей выпустить такой вирус в ближайшее время.

Широкое распространене ОС как необходимого условия для вирусного: на 1000 программистов только 100 способны написать вирус, на эту сотню приходится один, который эту идею доведет до завершения. Теперь полученную пропорцию умножаем на число тысяч программистов - и получаем результат: с одной стороны 15.000 или даже 20.000 полностью IBM-совместимых вирусов, с другой - несколько сот вирусов для Apple-Macintosh. Такое же несоответствие пропорций наблюдается и в сравнении общего количества вирусов для Windows (несколько десятков) и для OS/2 (несколько штук).

Приведенным выше трем условиям «расцвета» компьютерных вирусов удовлетворяют сразу несколько OS (включая редакторы), производимых фирмой Microsoft (DOS, Windows, Win95/NT и Word, Excel, Office97), что дает благодатную почву для существования самых разнообразных файловых и макро-вирусов. Удовлетворяют приведенным условиям также и стандарты разбиения жестких дисков. Результат - разнообразные варианты загрузочных вирусов, поражающих систему в момент ее загрузки. )