Компьютерные вирусы
sp; - Программы, написанные на языках высокого уровня, часто содержат в
своем начале сегмент кода, затем сегмент данных. Наличие еще одного
сегмента кода, располагающегося в конце файла программы, весьма
подозрительно.
- Подозрение вызывают расположенные в начале программы, написанной на
языке высокого уровня, фрагменты видоизменения собственного кода,
вызовы DOS- или BIOS-прерываний и прочее. Желательно визуально
помнить характерные начала программ, скомпилированных в той или иной
системе программирования (на-пример, начала программ, написанных на
Turbo Pascal, содержат большое количество дальних вызовов
подпрограмм call xxxx:xxxx).
- Наконец, о наличии вируса могут свидетельствовать <посторонние>
строки типа внутри файла.
7. Ловля вируса <на живца>. Итак, допустим, что наличие вируса в
системе доказано одним из предложенных выше методов, и зараженные
вирусом объекты определены. Теперь можно начать изучение вируса и,
вслед за этим, попытаться удалить его с машины. Желательно послать
образец вируса профессиональным вирусологам. А для этого необходимо
выделить вирус в чистом виде.
а) Выделение загрузочного вируса. Как уже говорилось выше, есливи рус
заразил винчестер, необходимо при помощи программы DiskEditor сохранить
в файле образ зараженного объекта (например, сектора 0/0/1 или всей
нулевой дорожки). Но, как известно, загрузочные вирусы только <живут> в
системных областях винчестера, размножаются же они, заражая системные
области дискет. Поэтому смотрим на лицевую панель компьютера. Еслив
наличии дисководы обоих типов (3.5" и 5.25"), то придется
отформатировать 4 дискеты на 4 стандартных формата: 360 Кбайт, 720
Кбайт, 1.2 Мбайт и 1.44 Мбайт. Затем при помощи программы DiskEditor
внимательно рассмотрим и постараемся запомнить внешний вид boot-
секторов этих дискет (0/0/1), хотя бы первые байты (естественно, все
это делается на чистой машине). Вставляем не защищенные от записи
дискеты по очереди в дисководы <больной> машины и (обязательно)
обращаемся к ним: пытаемся прочитать каталог, записать, прочитать и
удалить какие-либо файлы. Наконец, на чистой машине при помощи
DiskEditor вновь просматриваем сектор 0/0/1. Если на какой-либо
дискетеон изменился, при помощи того же DiskEditor снимаем образ всей
дискеты в файл. Вирус пойман. Можно упаковать файл каким-нибудь
архиватором и послать его вирусологу. Некоторые хитрые вирусы хранят
свое тело на дополнительной, специально отформатированной дорожке, так
называемом инженерном цилиндре дискеты. В этом случае без пакета
копирования ключевых дискет типа fda, teledisk или copymaster не
обойтись.
б) Выделение резидентного вируса. Как известно, резидентный вирус
постоянно находится в памяти ПЭВМ, выбирая жертву для заражения.
Наиболее часто в качестве жертв выступают запускаемые программы. Однако
файлы программ могут заражаться при открытии, копировании на дискету
или с нее (вирус OneHalf), вовремя поиска при помощи DOS-функций
FindFirst или FindNext. Необходимо подобрать подходящего претендента на
<контрольное> заражение - небольшую программу простой структуры,
приманку. Некоторые вирусы пытаются распознать приманку и отказываются
от ее заражения. Не подходят для таких целей слишком короткие программы
или такие, большая часть которых состоит из повторяющихся байт
(например, 90h - код команды NOP). В качестве приманки с большим
успехом можно использовать программы test.coin и test.exe. Вот их
исходные текстына языке Assembler.
test.com
cseg segment
assume cs:cseg, ds:cseg, ss:cseg
org 100h
Start:
db 1249 dup (OFAh,90h,OFBh,OF8h)
mov ah,4Ch
int 21 h
cseg ends
End Start
test.exe
cseg segment
assume cs:cseg, ds:cseg
Start:
db 1000 dup (0FAh,90h,0FBh,0F8h)
mov ah,4Ch
int 21 h
cseg ends
sseg segment stack
assume ss:sseg
db 118 dup (OFAh,90h,OFBh,OF8h)
sseg ends
End Start
Скопируем приманки на зараженную машину. Выполним над ними как можно больше
операций: запустим, скопируем в другое место винчестера и на дискету,
переместим, просмотрим их в NC и DOS (командой dir). При этом желательно
несколько раз поменять системное время и дату, потому что вирусы нередко
активны не каждый день и не круглые сутки. Чтобы исключить Stealth-эффект,
загрузимся с чистой дискеты и рассмотрим внимательно эти файлы. Как
правило, достаточно бывает проконтролировать размер файлов и просмотреть их
код припомощи F3 - наличие вируса определить несложно.
в) Выделение нерезидентного файла. Самый неприятный случай. Помимо того,
что вирус нередко привередничает, распознавая приманку, и по-прежнему
отказывается работать <без выходныхи отпусков>, так еще и заражаемость
программ сильно зависит от их расположения на винчестере. Одни
нерезидентные вирусы з
| | скачать работу |
Компьютерные вирусы |