Пятница, 29.03.2024, 12:30 Приветствую вас Гость | Группа "Гости" 
Меню сайта

Категории раздела
Вирусология [40]
Статьи о вирусах
Системные [1]
Работа с системой
Примеры [45]
Приёмы, функции, процедуры
Ceти [1]
Работа с интернет
Шуточные программы [5]
Пишем шуточные программки
Остальное [6]
Всё что не вошло

Популярные статьи

Недавние темы

Опрос
Нужно ли ограничение (регистрация) при скачке файлов?
Всего ответов: 354

Главная » Статьи » Delphi » Вирусология

Ознакомительная статья о вирусах
Подробно мы рассмотрим файловые вирусы по типу их заражения. Хочется отметить, что вирусы этого типа обычно пишут либо на языках высокого уровня (ЯВУ), либо ни на ассемблере. Исходя из этого критерия вирусы, на выходе, так же сильно отличаются и по типу заражения:
Типы заражения свойственные для вирей, написанных на ЯВУ:
- HLLO (Overwrite) – Перезаписывающий. Это достаточно тупые и демажные твари, они почти не когда не получают высокого распространения из-за того что не сохраняют работоспособным заражённый файл. Поэтому ни у кого не возникает желание дать эту прогу кому-то из друзей.. Заражают они чаще всего либо просто тупо перезаписывая своим кодом прогу, либо перезаписывают своим кодом первый байты проги (размером как вирус), во втором случае есть один маленький плюс – то что размер проги не изменяется, но прога то всё равно мертва, хотя можно и в первом случае оставить размер неизменным, просто дописав в конец, недостающее количество данных... В целом – эти вири обычно пишут новички и школьники, но для «галочки» стоит и о них знать…
- HLLC (Companion) – Компаньон (спутник). С этими друзьями дело обстоит немного похитрей, но они в силу своего принципа вообще не заражают своим кодом программы, но конечную цель, а это получение управления при запуске жертвы они достигают. Суть в следующем. Изначально эти вири появились в DOS и юзали они интересную особенность той нетленной операционки. В DOS при запуске программы не было необходимости писать расширение (в винде кстати тоже), поэтому если в одной папке лежит файл file.com и file.exe, то при выполнении команды: file запустится file.com – а это и есть вирус, а он в свою очередь заразив несколько других прог, запускает file.exe. Конечно заражением в полном смысле слова это не назовёшь, так как жертва и вирь –разные проги (в этом его минус, так как его не так просто перенести на другой комп, только пожалуй если папку перенести), но всё же это вирус.. Есть второй адаптированный под винду способ этого заражения, при нём у жертвы переименуется расширение например с .exe на .ex$ а вирь себя копирует в папку с прогой с расширением .exe, жертве обычно ставят атрибут скрытый, что бы глаз не колол. В общем при таком заражении вирь получит управление при запуске с правильным расширением или при старте с ярлыка.. В целом конечно этот способ заражение то же не фонтан, но это уже что-то.. Так же к минусам этих гадов стоит отнести, то что они лечатся банальным удалением и переименованием расширением у жертвы (во втором случае), но этот косяк нередко устранён за счет шифрования всего тела жертвы или его части..
- HLLP (Parasitic) – Паразит. Для вирей на ЯВУ это в общем-то предел совершенства, и такие вири весьма часто встречаются и не редко имеют нормальное распространение, например внутри локалки или ВУЗа, это уже уровень. В чем их особенность. Эти вири являются именно настоящими вирусами по определению, они заражают своим кодом код проги, при этом не меняя (или почти не меняя его работы). Жертва и вирус в одном флаконе – это уже намного заразней и перспективней. Заражение и запуск у этих вирей происходит в основном двуми способами:

1 способ. Заражение: Вирус копирует себя во временную папку с временным именем, далее копирует в конец того временного файла тело жертвы, а затем удаляет жертву а временный файл переименует в имя жертвы. Есть второй вариант этого заражение, он не требует временного файла, при нём выделяется два буфера – в первый считывается тело виря, а во второй – тело жертвы, а затем эти буферы с перезаписью пишутся в файл. Т.о. после заражения, файл выглядит примерно так:
1байт виря…..Последний (VirSize) байт виря, 1байт жертвы…... Последний байт жертвы. 
Запуск: При запуске зараженного файла, ясен пень, запускается вирус, находит ещё жертвы, заражает их, а затем из себя извлекает тело жертвы во временный файл и запускает его. Так же можно запустить прогу непосредственно в память из себя, об этом будет в примерах рассказываться в других уроках. В вирусах на языках DOS возможно просто изменить свою прогу в режиме, пока она запущена и некоторые вири просто для запуска жекртвы удаляют себя из жертвы и запускают её, красивый способ, и он так же будет рассмотрен, как и все другие, со временем конечно.

2 способ. Заражение: Этот способ заражение красивее первого в том отношении, что не требуется создание временного файла при заражении, или выделение крупных буферов для тела жертвы. Способ заключается в том, что сначала у жертвы копируется кусок из начала в конец размером, как вирус, а затем на место первых VirSize байт жертвы пишется тело виря. Т.о. после заражения, файл выглядит примерно так:
1байт виря…..Последний (VirSize) байт виря, VirSize+1 байт жертвы…Последний байт жертвы, 1 байт жертвы… VirSize байт жертвы. (т.е. 3 фрагмента)
Запуск: С запуском в общем-то нет ни каких проблем, он делается теми же фишками, что и в первом способе, только с поправкой на то что тело жертвы необходимо восстановить, а именно сначала взять кусок из конца (1 фрагмент жертвы), а затем кусок идущий после виря (2 фрагмент жертвы)..

Типы заражения свойственные для вирей, написанных на ассемблере:
- Заражение конца – этот способ для вирусов на асме является основным – при вирь пишется в конец жертвы, а у проги меняется точка входа с реальной на вирусную, а вирус отработав передаёт управление жертве.
- Заражение середины – этот способ сложнее, и, как следствие трудней лечится. Существует несколько методов внедрения вируса в середину файла. В наиболее простом из них вирус переносит часть файла в его конец или «раздвигает» файл и записывает свой код в освободившееся пространство. Этот способ во многом аналогичен методам, перечисленным выше. Некоторые вирусы при этом компрессируют переносимый блок файла так, что длина файла при заражении не изменяется.
Вторым является метод «cavity», при котором вирус записывается в заведомо неиспользуемые области файла. Вирус может быть скопирован в незадействованные области заголовок EXE-файла, в «дыры» между секциями EXE-файлов или в область текстовых сообщений популярных компиляторов. Существуют вирусы, заражающие только те файлы, которые содержат блоки, заполненные каким-либо постоянным байтом, при этом вирус записывает свой код вместо такого блока

- Заражение без точки входа - Отдельно следует отметить довольно незначительную группу вирусов, не имеющих «точки входа» (EPO-вирусы — Entry Point Obscuring viruses). К ним относятся вирусы, не изменяющие адрес точки старта в заголовке EXE-файлов. Такие вирусы записывают команду перехода на свой код в какое-либо место в середину файла и получают управление не непосредственно при запуске зараженного файла, а при вызове процедуры, содержащей код передачи управления на тело вируса. Причем выполняться эта процедура может крайне редко (например, при выводе сообщения о какой-либо специфической ошибке). В результате вирус может долгие годы «спать» внутри файла и выскочить на свободу только при некоторых ограниченных условиях.
Перед тем, как записать в середину файла команду перехода на свой код, вирусу необходимо выбрать «правильный» адрес в файле — иначе зараженный файл может оказаться испорченным. Известны несколько способов, с помощью которых вирусы определяют такие адреса внутри файлов, например, поиск в файле последовательности стандартного кода заголовков процедур языков программирования (C/Pascal), дизассемблирование кода файла или замена адресов импортируемых функций.


Категория: Вирусология | Добавил: dolphin (02.08.2008)
Просмотров: 3767 | Рейтинг: 5.0/2

Всего комментариев: 0
avatar
Профиль


Логин:
Пароль:

Поиск

Наша кнопка
Вирусология, взгляд из Delphi

Статистика
Top.Mail.Ru Яндекс.Метрика Счетчик тИЦ и PR
Статистика материалов
Файлов: 455
Форум: 1165/8116
Коментариев: 768
Новостей: 29

Статистика пользователей
Всего: 526
За неделю: 3
Вчера: 0
Сегодня: 0
Всего онлайн: 1
Гостей: 1
Пользователей: 0

delphicode.ru © 2008 - 2024 Хостинг от uCoz