Смекни!
smekni.com

Компьютерные вирусы (стр. 4 из 6)

Все операции, например поиск вирусов, могут производиться на текущем диске (по умолчанию), по текущему пути, а также на всех дисках. Для того чтобы поменять путь или диск следует нажать клавишу TAB. Во время работы информация о пути выводится в верхнем левом углу.

Для проверки компьютера на наличие известных вирусов нужно в основном меню выбрать пункт "Поиск и удаление вирусов". После этого можно выбрать либо режим "Проверка наличия вирусов", либо режим "Комплексная проверка". В первом случае будет произведена проверка файлов и загрузочных секторов на известные вирусы, а во втором - будут проверены не только файлы и BOOT-сектора, но и память. К тому же программа сравнит состояние системы с данными, сохраненными в файлах DISKDATA.DTL , MBOOT.DTL и BOOT.DTL.

Сначала программа произведет предварительный проход для оценки объема предстоящей работы, а затем просмотрит все программные файлы. В любой момент пользователь может нажать ESC для прерывания просмотра или пробел для временной остановки. По умолчаниюAVSP проверяет размеры файлов. Если размер изменен, то проверяется контрольная сумма и строится карта изменения файла. Если файл новый, то он проверяется на наличие известных вирусов. Во время проверки диска в окно, расположенное в правой части экрана могут выводиться различные сообщения, например, об изменении размера файла. После проверки их все можно будет просмотреть, выбрав в меню пункт "Просмотр Сообщений". Иногда может быть выдано сообщение о подозрительных файлах. Это означает, что по некоторым признакам можно судить о том, что файл либо заражен новым вирусом, либо он ранее был им заражен, но после лечения характерные для вируса признаки остались. Такое сообщение выдается также о файлах, у которых странное время создания. Например, у меня AVSP "ругается" на файл PCXSHOW.EXE, у которого время создания 3:53.60. Интересен тот факт, что антивирус не "ругается" на свою демонстрационную программу (AVSP_DEM.EXE), у которой дата создания 11.11.2011 года, а время 11:11, да ещё к тому же размер - пять шестёрок. Вероятно, при написании программы автор вспомнил, что ещё существуют устаревшие машины, у которых нет CMOS, и дата вводится при загрузке.

При комплексной проверке AVSP выводит также имена файлов, в которых произошли изменения, а также так называемую карту изменений. Если у большинства изменённых файлов она одинаковая, то, вероятнее всего, в систему "закрался" какой-то вирус. Чаще всего в такой ситуации программа сама "заподозрит" неладное и предложит внести информацию о нём в библиотеку. При этом шаблон вируса будет выбран автоматически.

При автоматическом определении новых вирусов AVSP может допустить множество ошибок. Как раз в те дни, когда я занимался написанием работы, со мной произошел именно такой случай. При проверке жесткого диска AVSP выдал сообщение "Найден неизвестный вирус! " и выдал запрос о занесении шаблона вируса в библиотеку. Взглянув на имя файла, я сразу понял, что наличие в нем вируса маловероятно, так как это был самораспаковывающийся архив RAR-а, который я создал за несколько минут до запуска антивируса, перепаковав два файла, один из которых был также SFX-архивом с тем же именем, что и получившийся. Решив посмотреть, что будет дальше, я установил опцию создания отчета и повторно запустил комплексную проверку. Вот фрагмент этого отчета:

Директория

C:\TOOLS\UTILIT

C:\TOOLS\UTILIT

SPEED200.EXE:

SPEED200.EXE: Новый

TB.EXE:

TB.EXE: Новый

Директория

C:\USER\MUSIC\ROCK

C:\USER\MUSIC\ROCK

ROCK.EXE:

ROCK.EXE: Новый

PTTM.COM:

PTTM.COM: Новый

PSYCHO.EXE:

PSYCHO.EXE: Новый

Директория

C:\DISK_ARH

C:\DISK_ARH

DERIVE.EXE:

DERIVE.EXE: Изменен

- Изменение размера: 22053 (был 170496,стал 192549)

- Возможный вирус: TP-940128

После ответа на запрос AVSP-а о занесении вируса в библиотеку, программа вывела составленный ею шаблон на экран. Дизассемблировав клавишей TAB код шаблона, я увидел следующую последовательность команд:

push es

push cs

pop ds

mov cx,[000ch]

mov si, cx

dec si

Такая последовательность команд, а особенно две первые (сохранение соответствующих регистров) встречаются в начале многих исполнимых программ. При повторном запуске комплексной проверки AVSP "находил" вирус в каждой второй EXE-программе:

Директория

C:\ANTIVIR

C:\ANTIVIR

AIDSTEST.EXE:

AIDSTEST.EXE: Заражен

- Вирус ERU-37

Директория

C:\ANTIVIR\ADINF

C:\ANTIVIR\ADINF

REVIS.EXE:

REVIS.EXE: Заражен

- Вирус ERU-37

Директория

C:\DOS

C:\DOS

MEMMAKER.EXE:

MEMMAKER.EXE: Заражен

- Вирус ERU-37

MSAV.EXE:

MSAV.EXE: Заражен

- Вирус ERU-37

<<<< Работа прервана (диск C:) >>>>

Так что при автоматическом определении шаблона следует не полениться проверить, действительно ли это вирус и не будет ли этот шаблон встречаться в здоровых программах.

Если в процессе AVSP обнаружит известный вирус, то следует предпринять те же действия, как и при работе с Aidstest и Dr.Web: скопировать файл на диск, перезагрузиться с резервной дискеты и запустить AVSP. Желательно также, чтобы при этом в память был загружен драйвер AVSP.SYS, так как он помогает основной программе лечить Stealth-вирусы. После этого нужно выбрать пункт меню "Удаление вирусов". Если в библиотеке программы VIRUSES.INF есть информация о том, как лечить данный вирус, то файл будет вылечен, и AVSP выдаст соответствующее сообщение. При отсутствии в библиотеке информации о способе лечения данного вируса программа попытается автоматически восстановить файл при помощи информации, сохраненной в файлах данных DISKDATA.DTL. Если файл вылечить не удастся, то, возможно, это "вирус-невидимка". Узнать поподробнее о том, что же за вирус "залез" в систему можно в режиме просмотра сообщений. Для этого нужно подвести курсор на название вируса и нажать ENTER.

Если автоматически файл восстановить не удалось то можно либо, как всегда, удалить его, либо попытаться самостоятельно обучить AVSP уничтожать вирус. Правда, для написания "лекарства" даже на макроязыке AVSP-а нужно иметь опыт в системном программировании и знать хотя бы азы ассемблера. Ведь и в медицине таблетки в неумелых руках приносят больше вреда, чем пользы. Если у пользователя есть модем, то он может послать в сеть "электронное объявление" с вопросом о способе лечения вируса. При этом следует выбирать достаточно известные станции, а не любительские BBS, в которые лазают только любители GIF-ов и анекдотов про поручика Ржевского.

Для внесения и редактирования информации о вирусах в меню "Данные о файлах и о вирусах" есть подменю "Изменение информации о вирусах". При выборе этого пункта программа выводит на экран список всех известных ей вирусов. По списку можно передвигаться с помощью стрелок. Чтобы получить более полную информацию о вирусе, нужно, подведя курсор к его имени, нажать ENTER. Вся эта информация находится в файле VIRUSES.INF, который можно редактировать не только с помощью AVSP в пункте "Изменение информации о вирусах", но и как обычный текстовый файл. Чтобы внести информацию о новом вирусе с помощью AVSP нужно нажать F2 , программа спросит об имени вируса, а когда пользователь введет это имя, программа выдаст таблицу, аналогичную той, что выводится при автоматическом задании шаблона. В эту таблицу нужно занести все известные об этом вирусе данные. В AVSP существует возможность задавать шаблон не только обычных, но и самомодифицирующихся вирусов. Это осуществляется посредством заменителей символов в мнемонических командах, также составляющих макроязык антивируса. Опытные программисты могут внести также последовательность макрокоманд, задающую способ лечения файла. В любой момент можно отказаться от редактирования, нажав ESC или записать информацию в библиотеку, нажав ENTER.

Но, конечно, полностью все возможности программы реализуются в руках человека, знакомого с ассемблером и системным программированием. В AVSP имеется возможность просматривать файлы в разных форматах. При входе в режим просмотра на экран выводятся две колонки: слева содержимое просматриваемого файла в виде шестнадцатеричных кодов, а справа - в виде ASCII-кодов. Кроме того, выводится полезная системная информация, которая поможет при написании процедуры удаления вируса. Передвигая курсор, можно перейти на любой адрес, есть также функции поиска шаблонов, сравнения файлов. Можно установить, в каком формате будет просматриваться, например, заголовок: как у EXE-файла, SYS-файла или в формате загрузочного сектора. При этом хорошо реализован сам просмотр заголовка: его системные ячейки представлены в виде таблицы: слева значение ячейки, справа - пояснение.

Ещё одной полезной функцией является встроенный дизассемблер. С его помощью можно разобраться есть ли в файле вирус или при проверке диска произошло ложное срабатывание AVSP. Кроме того, можно попытаться выяснить способ заражения, принцип действия вируса, а также место, куда он "спрятал" замещённые байты файла (если мы имеем дело с таким типом вируса). Все это позволит написать процедуру удаления вируса и восстановить запорченные файлы. Для полного счастья не хватает только трассировщика, хотя в неумелых руках такая функция может привести к заражению ещё большего количества данных. В режиме дизассемблера между мнемоническими командами можно перемещаться, используя стрелки. Чтобы перейти по смещению, указанному в команде перехода, нужно нажать клавишу F7.

Ещё одна полезная функция - выдача наглядной карты изменений. Особенно ясно я это понял, когда у меня возникло подозрение в отношении одного из файлов (который не должен был, вроде бы, меняться) в ревизоре ADinf, в котором нет такой функции. Карта изменений позволяет оценить, соответствуют ли эти изменения вирусу или нет, а также сузить область поиска тела вируса при дизассемблировании. При её построении красный прямоугольник используется для изображения изменённого блока, синий - неизменённого, а прозрачный - нового.

Если есть подозрение, что в систему забрался Stealth-вирус, можно запустить AVSP с параметром /D с жесткого диска, а затем загрузиться с чистой системной дискеты и запустить AVSP без параметров. Если результаты проверки контрольных сумм отличаются в обоих случаях, то подозрения оправданы. В программе AVSP есть два алгоритма нейтрализации "невидимок" и оба они работают только при наличии активного вируса в памяти. То, что происходит при реализации этих алгоритмов похоже на фильм ужасов или конец Света: все файлы копируются в файлы данных, а потом стираются. Спасаются только файлы с атрибутом SYSTEM. В Adinf процесс удаления Stealth-ов реализован гораздо проще. Может, конечно, способ борьбы с "невидимками" в AVSP и надёжней, но как-то это не особо приятное развлечение - перепахивать весь "винт", да к тому же и небезопасное.