Прибыль каждые 10 минут!
ComputerF1
Главная
Вход
Регистрация
Четверг, 09.07.2020, 04:41Приветствую Вас Гость | RSS
Меню сайта

Категории раздела
Операционные системы Windows [30]
Windows термины [11]
Термины значений
Помощь вашему компьютеру [11]
В этой категории находятся статьи, помогающие устранить неисправности вашего компьютера.
Компьютерные сети [3]
Всё о компьютерных сетях
Флешка [5]
Все о флешках
Железо [17]
Мониторы, материнские платы, процессоры, жесткие диски, блоки питания .....
Интернет [12]
Всё о интернет, безопасная работа в интернете
Хакер [7]
Хакерские статьи
Компьютерные вирусы [13]
Виды вирусов
Офисные АТС [0]
BIOS [22]
Всё о BIOS

Мини-чат

Наш опрос
Оцените мой сайт
Всего ответов: 512

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Главная » Статьи » Компьютерные вирусы

Что такое компьютерные вирусы и как они работают 2 часть

Вирусы, внедряющиеся в файлы

Самую большую группу составляют вирусы, внедряющиеся в файлы. Они могут заражать практически любые файлы, содержащие выполнимый код. В первую очередь это файлы программ, имеющие расширения COM и EXE. Но не только они подвергаются нападению вирусов. Файлы оверлеев (расширения имен файлов OVL, OVI, OVR и др.), драйверов (SYS) также могут быть инфицированы.

Существует три большие группы файлов, которые непосредственно может запускать пользователь, вводя их имя в системном приглашении операционной системы MS-DOS. К ним относятся выполнимые файлы в формате COM и EXE, а также командные файлы, имеющие расширение BAT.

Выполнимые файлы в формате COM и EXE в корне отличаются от командных файлов с расширением BAT. В отличие от последних, они состоят из команд центрального процессора, то есть содержат машинные инструкции. Вместе с командами процессора в выполнимых файлах могут размещаться данные: тексты сообщений, числовые константы и т. д. Чтобы создать выполнимый файл, используют специальные программы-трансляторы и редакторы связей.

Файлы в форматах COM и EXE отличаются в основном только своим форматом. Выполнимый файл COM состоит из одних инструкций процессора и данных. Размер COM файла обычно не превышает 65536 байт. Естественно это накладывает большие ограничения на программы в этом формате.

Когда вы запускаете программу в формате COM, операционная система считывает файл программы с жесткого диска или дискеты и размещает его в оперативной памяти, выбирая для этого свободный участок. Затем операционная система передает управление на самую первую команду загруженной программы. После окончания работы программы она возвращает управление операционной системе.

Файлы в формате EXE имеют значительно более сложную структуру, чем файлы COM. За счет этого они могут иметь больший размер, превышающий 65536 байт.

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

Первое поле заголовка содержит сигнатуру EXE-файла - два символа MZ. Вы можете просмотреть любой EXE-файл в текстовом редакторе. Два первых символа всегда будут MZ. Некоторые выполнимые файлы могут иметь другую сигнатуру - ZM. Они также распознаются операционной системой как файлы в формате EXE.

Затем в заголовке файла следует таблица настройки. Когда пользователь запускает EXE-файл, операционная система загружает его в оперативную память, а затем настраивает его в соответствии с таблицей настройки. Только после этого управление передается на первую команду программы, адрес которой также записан в заголовке файла. Подробно формат заголовка EXE-файла описан в 18 томе из серии книг "Библиотека системного программиста”.

Командные BAT-файлы - это обычные текстовые файлы, состоящие из команд операционной системы. Для создания такого файла достаточно иметь любой текстовый редактор, который может сохранять файлы в обычном текстовом формате. В качестве примера можно привести текстовый редактор Notepad, входящий в состав операционной системы Windows.

Кроме команд операционной системы и вызовов других программ, командный файл может содержать строки комментариев. Такие строки обозначаются командой REM и полностью игнорируются. Вы можете воспользоваться строками комментариев, чтобы добавить текстовое описание к командному файлу или чтобы временно запретить выполнение отдельных команд такого файла:

REM Подключаем драйверы локальной сети

lsl.com

ne2000.com

ipxodi.com

netx /c=c:\net\net.cfg

REM login - команда временно отключена -

Когда вы запускаете командный файл, операционная система считывает его строка за строкой и выполняет прочитанные команды (рис. 1.4).

 

Рис. 1.4. Программа до заражения

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

Далее вирус отрабатывает свои задачи: заражает другие файлы, устанавливает в памяти собственные резидентные модули и выполняет другие функции. Затем вирус, как правило, передает управление зараженной программе и далее она исполняется как обычно.

 

Рис. 1.5. Запуск зараженной программы

Обычно изменения в зараженных файлах видны невооруженным глазом в любом редакторе, в который можно загрузить выполнимый файл для просмотра. Кроме того заметно увеличение длинны зараженного файла. Некоторые вирусы, находясь резидентными в памяти, могут маскироваться. В этом случае изменения в зараженном файле будут незаметны.

На рисунках 1.6 и 1.7 мы привели участки дампа файла MOUSE.COM до и после его заражения вирусом OneHalf. Без труда можно заметить, что зараженный файл длиннее незараженного на 3544 байт.

Рис. 1.6. Дамп файла MOUSE.COM

Вы также можете увидеть изменения в самом выполнимом файле. Заметно, что изменены несколько первых байт файла (в них записана команда перехода на код вируса). В конце зараженного файла появились новые данные - это код самого вируса.

Рис. 1.7. Дамп файла MOUSE.COM, зараженного вирусом OneHalf

Вирусы-спутники

Как известно, в операционной системе MS-DOS существуют три типа файлов, которые пользователь может запустить на выполнение. Это командные или пакетные файлы. Командные файлы состоят из команд операционной системы и имеют расширение имени файла BAT.

В одном каталоге могут одновременно находиться несколько выполнимых файлов, имеющих одинаковое имя, но разное расширение имени. Например, в каталоге DOS записаны файлы MSD.COM и MSD.EXE. Вы можете создать в этом же каталоге командный файл MSD.BAT.

Когда вы желаете выполнить программу и вводите ее имя в системном приглашении MS-DOS, вы обычно не указываете расширение файла. Какой же файл в этом случае будет выполнен?

Оказывается, в этом случае операционная система MS-DOS будет выполнять файл, имеющий расширение COM. Если в текущем каталоге или в каталогах, указанных в переменной среды PATH, существуют только файлы с расширением EXE и BAT, то выполняться будет файл с расширением EXE.

Когда вирус-спутник заражает файл, имеющий расширение EXE или BAT, он создает в этом же каталоге еще один файл, имеющий такое же имя и расширение COM. Вирус записывает себя в этот COM-файл.

В качестве иллюстрации сказанного мы приводим содержимое каталога C:\PROGRAM. Первоначально в нем был записан один файл программы расчета CALC.EXE. После заражения этого файла вирусом-спутником в каталоге C:\PROGRAM появился файл CALC.COM:

C:\PROGRAM>DIR

 Volume in drive C is LIBRARY

 Volume Serial Number is 1F64-394F

 Directory of C:\PROGRAM

.              <DIR>        26.11.95  18:55

..             <DIR>        26.11.95  18:55

CALC     COM         1 754  30.09.93   6:20

CALC     EXE        29 390  30.09.93   6:20

         2 file(s)         31 144 bytes

         2 dir(s)      26 599 424 bytes free

Если, запуская зараженную программу CALC.EXE, вы наберете в системном приглашении ее имя без расширения, то будет запущен вирус-спутник, файл которого имеет расширение COM:

C:\PROGRAM>CALC

Получив управление, вирус может выполнять различные действия: заражать другие файлы, устанавливать резидентный модуль, и т. д. Затем вирус может запустить саму зараженную программу, имеющую расширение EXE.

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

Для маскировки вирусы спутники обычно устанавливают для файла вируса атрибут "Скрытый”. В этом случае команда DIR не отобразит имя файла вируса.

C:\PROGRAM>DIR

 Volume in drive C is LIBRARY

 Volume Serial Number is 1F64-394F

 Directory of C:\PROGRAM

.              <DIR>        26.11.95  18:55

..             <DIR>        26.11.95  18:55

CALC     EXE        29 390  30.09.93   6:20

         1 file(s)         29 390 bytes

         2 dir(s)      26 599 424 bytes free

Однако такая маскировка очень слаба. Достаточно указать команде DIR параметр /A и она покажет список всех файлов в текущем каталоге, включая скрытые и системные файлы.

Вирус CloneWar

Под таинственным названием CloneWar скрывается целая группа вирусов-спутников. Во избежании путаницы их различают по длине файла вируса-спутника. На время написания книги были известны 5 вариантов вируса CloneWar длинной 228, 246, 261, 546 и 923 байт. Механизм их распространения полностью соответствует описанной нами технологии. Вирус выполняет поиск в текущем каталоге выполнимых файлов с расширением EXE. Затем он создает файл с таким же именем, но с расширением COM и записывает себя в него.

Когда пользователь вводит после системного приглашения имя зараженной программы без расширения, то запускается файл с расширением COM, который содержит вирус. Он заражает другие EXE файлы, а затем запускает зараженную программу.

Самая короткая из известных версий вируса CloneWar имеет длину 228 байт. Версия 246 вируса CloneWar содержит внутри себя небольшой стих:

Beyond
The rim of the star-light
My love
Is wand'ring in star-flight
I know
He'll find in star-clustered reaches
Love
Strange love a star woman teaches.
I know
His journey ends never
His star trek
Will go on forever.
But tell him
While he wanders his starry sea
Remember, remember me.

Самая большая версия вируса, имеющая длину 923 байта, проверяет значение системного таймера и в некоторых случаях исполняет через динамик компьютера небольшую мелодию. Затем код вируса зацикливается, вызывая зависание компьютера.

Со временем идея вируса-спутника получила дальнейшее развитие. Кто-то из писателей вирусов резонно заметил, что любой выполнимый файл можно переименовать, а затем создать файл с таким же именем, но содержащий код вируса. Когда пользователь запускает свою программу, на самом деле запускается программа-вирус. Она заражает другие программы, а затем загружает в оперативную память и исполняет настоящую программу пользователя.

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

Вирус Carbuncle

Вирус Carbuncle также представляет собой вирус-спутник, но работает не так, как вирус CloneWar.

При запуске вирус Carbuncle создает в текущем каталоге файл CARBUNCL.COM. Для маскировки этому файлу присваивается атрибут скрытый. Затем вирус ищет в текущем каталоге выполнимые файлы. Если вирус найдет в каталоге файл с расширением EXE, то он изменяет его расширение на CRP и создает пакетный файл с таким же именем. Этот файл получает расширение BAT. В него вирус записывает несколько команд MS-DOS, позволяющих запустить файл вируса CARBUNCL.COM и саму зараженную программу. Ниже мы привели пример такого файла для зараженной программы PROGRAM.EXE.

@ECHO OFF
CARBUNCL
RENAME PROGRAM.CRP PROGRAM.EXE
PROGRAM.EXE
RENAME PROGRAM.EXE PROGRAM.CRP
CARBUNCL

Если пользователь решит запустить зараженную программу и введет в системном приглашении имя программы без указания расширения, то операционная система просмотрит весь каталог в поисках файла с таким именем. Так как файл с расширением EXE она не обнаружит, то будет выполнен файл с расширением BAT.

Чтобы замаскировать исполнение нескольких команд пакетного файла, команда @ECHO OFF отключает вывод на экран исполняемых команд пакетного файла.

Следующая строка пакетного файла, созданного вирусом, запускает сам вирус CARBUNCL.COM. Затем зараженному файлу возвращается его настоящее расширение EXE и выполняется его запуск. После того как программа отработает, ее расширение опять заменяется на CRP. В конце снова запускается файл вируса CARBUNCL.COM.

Так как после заражения программы файл с расширением EXE уже не существует, то если при запуске программы указать ее полное имя с расширением, операционная система не сможет найти этот файл и на экране появится предупреждающее сообщение:

Bad command or file name

Вирус CloneWar ведет себя в этой ситуации значительно лучше. В этом случае сразу будет запущена настоящая программа. Вирус просто не получит управления.

Вирус Carbuncle занимается не только распространением своих копий. В некоторых случаях он может уничтожить зараженный файл. При запуске файл вируса проверяет значение системного таймера и если оно меньше или равно 16, то вирус записывает свой код в файл первого зараженного файла в текущем каталоге.

Внутри файла вируса содержатся следующие текстовые строки:

@ECHO OFF
CARBUNCL
RENAME
PC CARBUNCLE: Crypt Newsletter 14

Вирусы в COM и EXE файлах

Формат выполнимых COM-файлов достаточно прост, чтобы любой программист средней квалификации, знакомый с языком ассемблера, смог написать вирус.

Основная идея таких вирусов заключается в том, что вирус записывает свой код внутрь заражаемого файла. В самом простом случае вирус дописывает свой код в конец файла. Затем вирус считывает и сохраняет несколько первых байт заражаемого файла. На их место записывается команда передачи управления коду вируса.

После запуска зараженной программы управление передается первой команде, замененной вирусом на команду перехода. Поэтому управление сразу передается вирусу.

Получив управление, вирус выполняет действия, определенные его автором. Обычно в этот момент вирус заражает другие выполнимые файлы, устанавливает собственные резидентные модули, совершает другие противоправные действия.

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

Вирусы, заражающие выполнимые файлы, могут записывать свой код не только в конец файла. В качестве примера можно привести вирус Anarchy.2048 и Megadeth. Когда Megadeth заражает выполнимый COM-файл программы, он считывает и сохраняет в конце файла первые байты кода программы. Затем вирус записывает свой код в начало файла, поверх только что сохраненного кода программы.

Во время запуска программы код вируса сразу получает управление. Выполнив все свои действия, он восстанавливает начало зараженного файла, уничтожая свой код и передает ему управление.

Мы уже говорили, что размер выполнимых файлов в формате COM обычно не превышает 65536 байт. В принципе, можно создать COM файлы большего размера, но для этого они должны самостоятельно загружать себя. Большинство вирусов, заражающих COM-файлы, следят, чтобы суммарный размер файла и вируса не превышал данного значения. Если это условие не выполняется, заражение не происходит.

Среди вирусов, заражающих только COM-файлы, существуют и своего рода шедевры. Например, вирус Micro-92 имеет длину всего 92 байта. Вирус резидентный. Существует только в качестве академического. Автор вируса, Соловьев Михаил Анатольевич, прислал его непосредственно Лозинскому, гарантируя, что он не получит дальнейшего распространения.

Однако рекорд продержался недолго. Игорь Данилов создал вирус Micro-66 длиной 66 байт. Он существует только в качестве коллекционного экземпляра, никогда не распространялся и распространяться не будет. На момент написания книги самый короткий из известных нам вирусов имел длину 58 байт.

Процедура заражения вирусами EXE-файлов немного отличается от только что рассмотренной нами. Такие вирусы должны учитывать, что EXE-файлы имеют заголовок. При заражении вирус записывает себя в файл программы и  может изменить заголовок EXE-файла.

Вирусы в драйверах

В операционной системе MS-DOS существует специальный вид программ, называемых драйверами. Драйверы запускаются только на этапе загрузки операционной системы, во время ее инициализации и интерпретации файла конфигурации CONFIG.SYS. Файлы драйверов обычно имеют расширение SYS.

Ряд вирусов разработан специально для заражения драйверов. Такие вирусы дописывают свой код к файлу драйвера и модифицируют его таким образом, чтобы вирус остался в оперативной памяти компьютера после загрузки драйвера.

Основные файлы операционной системы IO.SYS и MSDOS.SYS также могут быть заражены. Интересно, что в Microsoft Windows 95 файл MSDOS.SYS не содержит исполняемого кода, а предназначен для хранения параметров конфигурации системы:

[Paths]
WinDir=C:\WIN
WinBootDir=C:\WIN
HostWinBootDrv=C

[Options]
BootMulti=1
BootGUI=1
Network=0
;
;The following lines are required for compatibility with other programs.
;Do not remove them (MSDOS.SYS needs to be >1024 bytes).
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxa
...
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxs

Естественно, в случае заражения этого файла Windows 95 перестанет правильно работать.



Источник: http://www.frolov-lib.ru/books/step/v05/ch1.htm
Категория: Компьютерные вирусы | Добавил: serg (04.09.2011)
Просмотров: 3580 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Вход на сайт

Поиск

Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz


  • Прибыль каждые 10 минут!