Пусть объектом для наших экспериментов послужит вирус Win. WinTiny. b. Анализ вируса необходимо начинать с содержимого полей NE-заголовка, расположенного в файле по «нестандартному» смещению 88h:
Этот фрагмент снабдит нас байтами для сигнатуры, и пусть в нее войдут первые 10 байтов фрагмента.
Если посмотреть объективно, то это — не лучший выбор, по крайней мере для «коммерческого» антивируса. Дело в том, что исходный текст рассматриваемого вируса был первоначально опубликован в австралийском вирусописательском электронном журнале «Vlad», а позже был воспроизведен в некоторых печатных изданиях. Велика вероятность, что если какой-нибудь не особенно трудолюбивый пакостник возьмет этот текст в качестве основы для своего «опуса», то начальные фрагменты «опуса» и оригинала будут совпадать. Тем не менее для нас это не принципиально, поэтому в качестве сигнатуры примем: «9C 60 1E 06 B8 86 16 CD 2F 0B».
Также, анализируя фрагмент, можно прийти к выводу, что в вирусе в дальнейшем планируется работа с памятью средствами DPMI. Итак, после поверхностного взгляда на приведенный фрагмент загадкой остается лишь одна подробность: адрес перехода на оригинальный код «жертвы». По формату команды «JMP» можно заключить только, что этот адрес будет помещен на свое законное место в процессе загрузки программы в память, и взят будет этот адрес из таблицы перемещаемых ссылок. Заглянем в «хвост» вирусного сегмента, для этого по файловому адресу 1800h+2DBh=1ADBh прочитаем 16-битовое слово со значением 1 и, наконец, саму ссылку: О nr_flags=04 — признак «добавляемой» ссылки;
Таким образом, после загрузки в память команда «JMP» будет ссылаться на смещение 0 в сегменте 1 . По-прежнему будем считать, что справиться с вирусом помогут две процедуры: infected — для проверки файла на «заразность», cure — для удаления вируса из файла. Первая из процедур должна сделать примерно то же, что мы только что выполнили самостоятельно, а именно проанализировать содержимое NE-заголовка, найти точку входа в зараженную программу и проверить наличие сигнатуры.





Свежие комментарии