Структура COM файла Наверное всем известны файлы с расширением COM. Главным COM файлом на ПК является вездесущий command.com (командный файл DOS) . Что же такое COM файл, как он работает и запускается ? Структура COM -
файла проста . В файлах данного типа,обычно не имеющими даже заголовка
файла,содержатся только машинный код и данные программы. Размер COM - файла ограничен 64 кб, т.е. размером одного сегмента памяти В основном COM файлы пишут на языке Ассемблера, но это не обязательно. Нописать файл можно на любом языке, который можно потом компилировать. Пример небольшого COM файла выводящего на экран сообщение: .286 ; Устанавливаем тип процессора mov ah,09h ;Функцию DOS (прерывание 21h) 09h mov dx,offset message ; Заносим в dx значение переменной message int 21h ;Устанавливаем прерывание которое должно обработать функцию 09h mov ah,4Ch ;Функцию DOS (прерывание 21h) 4Ch int 21h ;Устанавливаем прерывание которое должно обработать функцию 00h message db "My first COM programms",13,10,"$" ;Придаем значение переменной message Использую определение прерывания можно сказать как действует эта программа. mov ah,09h int 21h В первой строке в регистр ah заносится значение 09, где h означает, что это число в шестнадцатеричной системе исчисления, во второй строке указывается прерывание, в данном случае это 21, (h тоже самое, что и в первой строке) т.е. прерывание DOS. Получив такую команду, процессор
на время перестает выполнять текущие операции и передает управление
находящейся в оперативной памяти программе, обработчику функции 09h. После выполнения всех этих операций процессор возвращается к выполнению ранее выполняемой операции. Ниже приведены два варианта кода COM - файла до "инфицирования" вирусом и после: До инфицирования: .286 ;Задаем тип процессора code segmen ; Начало сегмента кода программы org 100h ;Все COM программы начинаются с адреса 100h jmp coob ; Тело программы начинается с метки coob mov ah,4Ch int 21h coob: ;Начало тела программы mov ah,09h ; Заносим значение 09h в регистр ah mov dx,offset message ; В регистре dx указываем адрес строки с текстом int 21h ; Указываем, что это прерывание DOS 21h message db "Файл не инфицирован",13,10,"$" ; Строка с текстом для вывода на экран mov ah,4Ch ;Выходим из программы int 21h ; Прерывание 21h ends code ; Конец сегмента кода программы После инфицирования .286 ;Задаем тип процессора code segmen ; Начало сегмента кода программы org 100h ;Все COM программы начинаются с адреса 100h jmp virus ; JMP изменены таками образом, чтобы вирус получил управление mov ah,4Ch int 21h coob: mov ah,09h mov dx,offset message int 21h message db "Файл не инфицирован",13,10,"$" ; Строка с текстом для вывода на экран mov ah,4Ch int 21h virus: mov ....... ............... } Вирус размножается и выполняет свои разрушительные действия ... int 21h jmp coob ends code ; Конец сегмента кода программы Ниже приведена структура инфицированного файла Команда перехода | Хвост COM программы | Тело вируса Оригинальное начало COM программы | | Структура EXE файла COM
файлы пишут в основном на языке Ассемблера, но они постепенно
устаревают и на смену им приходят огромные по своим размерам и сложные
по своей структуре EXE файлы. Состоять EXE файлы могут из нескольких сегментов, следовательно их размер не ограничен 64 кб. По структуре EXE файл сложнее, кроме кода программы в файле также содержется: заголовок файла, таблица настройки адресов, данные и т.п. Примерная структура EXE файла: Заголовок EXE файла | Тело программы | Конец программы | Заголовок EXE файла - содержет данные необходимые для загрузки программы Тело программы - основная часть программы, выполняющая какие-либо полезные действия Конец программы - завершающая часть программы, которая сохраняет нужные и удаляет ненужные данные из ОЗУ, закрывает все открытые данной программой файлы и т.п. Первая и последняя часть программы являются обязательными для всех EXE файлов, а вторая часть вовсе не обязательна. Вы можете просто взять её и пропустить. Приводить виды "инфицированного" и "не инфицированного" EXE файла я не буду, т.к. в отличие от COM вирусов, у EXE
вирусов есть множество способов заражения. Подробно о каждом из них я
расскажу Вам в следующих выпусках рассылки, а сейчас только перечислю
названия основных из них: OVERWRITE - вирусы, замещающие программный код COMPANION - вирусы-спутники PARASITIC - вирусы, внедряющиеся в программу метод переименования EXE файла внедрение способом переноса внедрение способом сдвига ? Как компилировать программу написанную на Ассемблере в COM файл Для
компилирования необходимо иметь соответствующее
программное обеспечение на ПК. Для этого достаточно
набора программ Turbo Assembler. В этом наборе находятся файлы tasm.exe и tlink.exe необходимые для компиляции в COM файл . Написанная Вами программка на Ассемблере должна храниться в обычном текстовом файле, далее: - копируем ваш файл в каталог с файлами tasm и tlink - пишем команду tasm.exe leo.asm ( leo.asm - название файла с вашей программой) если все прошло хорошо, то появятся еще файлы с таким же именем но с расширением obj, если нет, то на экране появятся сообщения с указанием типа ошибки и номером строки с ошибкой. - tlink leo.obj/t - И вот ваш COM
файл готов, можете его запустить. Но будьте
осторожней, не попадите в капкан установленный вами. | Стандартный вирус Не
только файлы имеют определенную структуру, но и вирусы для
осуществления своей вредоносной деятельности должны соблюдать
определенную структуру своего тела и действовать в определенном порядке.
Данная рассылка полна биологических и медицинских терминов, т.к.
способы заражения, методы распространения компьютерных вирусов очень
схожи с биологическими вирусами. Даже первый вирус создавался по
аналогии с биологическими вирусами. Интересно, а кто создал первый вирус ? С
момента появления вычислительной техники программистов и электронщиков
интересовала одна тема: самовопроизводяющиеся и самораспространяющиеся
механизмы. Первым кто попробовал осуществить эту идею в 1951 году был
Дж. фон Нейман. Но Нейман и не думал использовать эти материалы в каких
либо разрушительных целях, но другие люди, воспользовавшись его
материалами и знаниями в этой области начали создавать различных
вредоносные программы - компьютерные вирусы. Но что же побудило этих
людей пойти на это. Ученые считают, что людей побуждают создавать
компьютерные вирусы некоторые факторы: - озорство и одновременное непонимание всех последствий распространения вируса - стремление навредить кому-либо - неестественная потребность в совершение преступлений - желание самоутвердиться - невозможночть использовать свои знания в правильном русле Как и у биологических, у компьютерных вирусов есть определенные стадии "развития": - латентный период
- в течение которого вирус себя никак не проявляет (для того, чтобы
"замести следы" источника его попадания на "инфицированный" ПК) - инкубационный период - в рамках которого вирус только размножается - период проявления - в течение которого вирус выполняет несанкционированные пользователем действия. Компьютерные вирусы классифицируют по следующим признакам. - способ обитания - способ заражения и среды обитания - способ активизации - способ проявления - способ маскировки Нелепо
думать, что компьютерные вирусы могут содержаться везде. Особенно это
проявляется на пользователях "чайниках" которые могут часами просиживать
перед экраном и с упортством проверять файлы, которые никак не могут
содержать вирусы. Ведь вирус - это программа, следовательно имеет смысл
внедряться только в другие программы. В связи с этим компьютерные вирусы
подразделяют еще на: - файловые - загрузочные - файлово-загрузочные вирусы ФАЙЛОВЫЕ Вирусы могут внедряться в следующие компоненты системы: - файлы с компонентами DOS - исполняемые файлы COM - исполняемые файлы EXE - внешние драйвера устройств (SYS- и BIN-файлы) - объектные модули (OBJ-файлы) - файлы программы до их компиляции, в надежде на то, что их когда нибуть компилируют и запустят - командные файлы (BAT-файлы) - файлы-библиотеки (LIB, DLL и др.файлы) - оверлейные файлы (PIF, OV? и др. файлы) - файлы текстовых процессоров поддерживающих макроcы (DOC, XLS и др.файлы) С каждым днем этот список растет. Чаще всего вирусы внедряются в файлы COM, EXE и DOC ЗАГРУЗОЧНЫЕ загрузояные вирусы распространяются в BOOT секторах дисков и дискет - BR - на дискетах - MBR - на жестком диске При
загрузке этих дискет выполняется программа в BOOT секторе этого диска, а
следовательно и сам вирус. Плюс этого типа вирусов в том, что если
прочитать этот инфицированный диск, то на нем не окажется ни одного
файла. ФАЙЛОВО-ЗАГРУЗОЧНЫЕ ВИРУСЫ Вирусы данного типа обладают большей инфицирующей способностью, так как они распространяются в BOOT секторах диска и в файлах на этом диске. СПОСОБЫ ЗАРАЖЕНИЯ СРЕДЫ ОБИТАНИЯ Вирусы могут "имплантироваться" в следующие места файлов: - конец файла - начало файла - середина файлов - хвостовой части файлов (свободной)
|