Тема 4.2. Способы заражения программ.
· метод приписывания. Код вируса приписывается к концу файла заражаемой программы, и тем или иным способом осуществляется переход вычислительного процесса на команды этого фрагмента;
· метод оттеснения. Код вируса располагается в начале зараженной программы, а тело самой программы приписывается к концу.
· метод вытеснения. Из начала (или середины) файла «изымается» фрагмент, равный по объему коду вируса, и приписывается к концу файла. Сам вирус записывается в освободившееся место. Разновидность метода вытеснения — когда оригинальное начало файла не сохраняется вообще. Такие программы являются «убитыми насмерть» и не могут быть восстановлены никаким антивирусом.
· прочие методы. Сохранение вытесненного фрагмента программы в «кластерном хвосте» файла и пр.
Структура СОМ- и ЕХЕ-программ
СОМ-программа представляет собой участок кода и данных, начинающийся с исполняемой команды и занимающий не более 64Кбайт. Например, такую структуру имеет командный процессор СОММАND.СОМ операционной системы МSDOS, версий до 6.22 включительно.
ЕХЕ-программа имеет гораздо более сложную структуру. В начале файла ЕХЕ-программы располагается заголовок длиной 28 байт, содержащий следующие данные:
· MZш — признак ЕХЕ-файла;
· PartPag — длина файла по модулю 512;
· РаgeCnt — длина файла в 512-байтовых страницах;
· ReloCnt — размер настроечной таблицы;
· HdrSize — размер заголовка;
· MinMen — минимум требуемой памяти;
· МахМеn — максимум требуемой памяти;
· Relo-SS — относительный сегмент стека;
· ExeSP — смещение указателя стека;
· ChkSum — контрольная сумма файла;
· ЕхеIР — смещение точки входа;
· ReloCS — относительный сегмент точки входа;
· TableOff— смещение настроечной таблицы;
· Overlay — номер оверлейного сегмента.
Поля ReloCS и ЕхеIР определяют местоположение точки входа в программу, поля ЕхеSР и ReloSS — местоположение стека, поля PartPag и PageCnt — размер корневого сегмента программы.
Вычисленный по PartPag и PageCnt; размер программы может не совпадать с реальным размером файла. Такие программы называются «сегментированными» или «содержащими внутренние оверлеи». Грамотные авторы вирусов избегают заражать такие программы.
После заголовка может располагаться специальная таблица, точное местоположение которой определяется полем TableOff, а размер — полем ReloCnt. В этой таблице хранятся адреса тех слов в коде программы, которые модифицируются операционной системой во время загрузки программы.
Дата добавления: 2015-08-21; просмотров: 621;