Воскресенье, 19.05.2024, 09:13
Приветствую Вас Гость | RSS
Главная | | Регистрация | Вход
Меню сайта
Форма входа
Поиск
Календарь
«  Февраль 2012  »
ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
272829
Архив записей
Наш опрос
Оцените мой сайт
Всего ответов: 20
Мини-чат
Друзья сайта
  • Заказ Художник
  • Рыбалка
  • Новости
  • Наш университет io-96
  • Железо и другие
  • Наш Counter-Strike
  • Google ot Turbokherson
  • Google ot Turbokherson87
  • Android
  • Программы и Софт
  • Программирование
  • Лечение здоровья
  • О Ремонт компьютер
  • Наш сайт Turbokherson
  • Программирование ICQ 378204653 от Turbokherson
    Главная » 2012 » Февраль » 12 » Структура COM и EXE файлов
    00:18
    Структура COM и EXE файлов

    Структура 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 секторах диска и в файлах на этом диске.

    СПОСОБЫ ЗАРАЖЕНИЯ СРЕДЫ ОБИТАНИЯ

    Вирусы могут "имплантироваться" в следующие места файлов:

    - конец файла
    - начало файла
    - середина файлов
    - хвостовой части файлов (свободной)

    Просмотров: 1706 | Добавил: Turbokherson | Рейтинг: 0.0/0
    Всего комментариев: 0
    Имя *:
    Email *:
    Код *:
    Создать бесплатный сайт с uCozCopyright MyCorp © 2024