1. BanDiTuK29.04.2025 в 23:46от
Загрузка...

Урок второй.Теория+практика.

Тема в разделе "Новости электронного мира", создана пользователем 100yak, 25.08.2012.

  1. 100yak

    100yak

    Статус:
    Оффлайн
    Регистрация:
    08.08.12
    Сообщения:
    171
    Репутация:
    65 +/-
    Вот второй урок)В этом уроке будет говориться как появилась MS-DOS и как заражать .COM программы и как они работают)Я хотел вам показать немножко практики.Просто показать)Самой практики пока не будет)Я пытаюсь чтобы вы наглядно увидели как это работает.И кстати извиняюсь за мою лень))Я не написал определения которые даны в таблице ниже)В инете посмотрите)Всем до завтра)
    Простые СОМ-инфекторы
    Мы начнем наш путь в компьютерную вирусологию с
    простых и понятных вещей — с маленьких элементарных вирусов,
    которые довольно безвредны и покорны. Естественно, нам
    придется окунуться в темные воды прошлого и проследить
    развитие инфекторов на протяжении их небольшой, но инте-
    ресной истории. Такой экскурс в предыдущий век позволит вам
    освоить базовые приемы вирусмейкерства. Поэтому не упрекайте
    меня в пристрастии к DOSz/ и реликтам компьютерных программ.
    Все это тонкости учебного процесса, о которых вам знать не
    обязательно. Гы-гы!
    Однако, чтобы успокоить вас, я скажу, что получив азы
    Искусства, вы сможете создавать забавную смесь старых
    шедевров и современных методов — гремучую смесь, которая
    сделает ваши вирусы неотразимым источником наслаждения для
    авиров и несведущих пользователей.Сейчас мы рассмотрим приемы, общие почти для всех
    категорий вирусов. Даже в самых современных и навороченных
    образчиках Искусства, в которых применяются сокрытие и
    противо-антивирусная оборона, авторы по-прежнему используют
    стандартные функции чтения, записи и сравнения. Самыми
    простыми и покорными вирусами являются нерезидентские
    инфекторы СОМ-файлов. Они инфицирует только программные
    файлы с расширением .СОМ.
    Этот вид инфекторов переживал свой расцвет в 1989—91
    годах прошлого столетия. В отличие от ЕХЕ-файлов, СОМ-
    файлы не содержат структур данных, интерпретируемых
    операционной системой. В них заложен только код. Простота
    СОМ-файла делает инфицирование довольно легким делом. К
    тому же, нерезидентские вирусы не оставляют код в памяти,
    который будет действовать после завершения программы-
    жертвы. Таким образом, пока вы работаете в окне подсказки DOS,
    вам ничто не угрожает. Вирус не вырвется из вашей хватки и не
    скроется в недрах машины.
    Тем не менее, безвредность нерезидентских СОМ-
    инфекторов — понятие относительное. Встречаются жутко
    опасные СОМ-вирусы, заряженные логическими бомбами —
    кодом, который выполняется при совпадении условий,
    заложенных творцом «зверушки». Так что будьте настороже и,
    работая с вирусами, никогда не расслабляйтесь.
    Мы рассмотрим три основных типа
    СОМ-инфицирующих вирусов. Они называются так:
    1. Переписывающие вирусы
    2. Компаньонские вирусы
    3. Паразитические вирусы
    Если вы поймете принцип действия этих простейших
    вирусов, то освоите компьютерную вирусологию на 62%,
    потому что большинство современных вирусов относятся к
    одному из вышеуказанных типов. Но прежде чем приступить к
    их рассмотрению, давайте выясним, как работает СОМ-
    программа. Это поможет нам правильно атаковать ее.
    Принцип действия СОМ-программы
    Когда пользователь вводит имя программы в окне подсказки
    DOS или кликает по иконке или ссылке, операционная система
    начинает искать файлы с указанным именем и расширением
    «.СОМ». Если она находит что-то, то загружает файл в память и
    выполняет его. Если не находит, начинает искать файлы с тем же
    именем, но уже с расширением «.ЕХЕ». Если находит, то загружает
    и выполняет файл. Если ни один ЕХЕ-файл не найден,
    операционная система приступает к поиску файла с расширением
    «.ВАТ» и, найдя, выполняет его. Если все три варианта поиска ни к
    чему не привели, DOS выдает сообщение об ошибке: «Bad command
    or file name».
    СОМ-файлы проще ЕХЕ-файлов. Они имеют предписанный
    формат сегмента, который встроен в структуру DOS, в то время как
    ЕХЕ-файлы устроены так, что сегментный формат определяется
    программистом. Обычно это очень большие и сложные программы.
    СОМ-файл является прямым двоичным образом кода, который
    вносится в память и выполняется процессором. ЕХЕ-файл
    таковым не является.
    При выполнении СОМ-файла DOS совершает подготови-
    тельную работу, затем загружает программу в память и передает
    программе контроль. После того, как программа получает
    контроль, DOS выполняет программу и манипулирует ею как
    данными. Чтобы понять этот процесс, мы рассмотрим действие
    простой невирусной СОМ-программы, которая на Ассемблере
    эквивалентна hello.с — известной маленькой «затычке»,
    вставляемой во все книги по программированию на языке С. Вот она:
    model tiny
    .code
    ORG 100H
    FLY:
    mov ah, 9 ;приготовиться к показу сообщения
    mov dx.OFFSETWART ;адрес сообщения
    int 21Н ;показать его с помощью DOS
    mov ax, 4C00H ;приготовиться к выходу из программы
    int 21Н ;и выйти с помощью DOS
    WART DB «Вы только что запустили в систему
    вирус! Наслаждайтесь!$»
    END FLY
    Назовем программу FLY.ASM.
    В этой главе мы будем использовать
    ее в качестве жертвы для вирусной
    инфекции. Теперь, когда вы напечатаете
    «FLY» в черном окне подсказки, DOS
    первым делом зарезервирует память для
    этой программы.
    Чтобы вы поняли, как СОМ-
    программа использует память, я должен
    рассказать вам о еще одной нелепости
    современной компьютерной архитектуры.
    На самом деле СОМ-программы являются анахронизмом или,
    лучше сказать, реликтом тех дней, когда ваши папы и мамы, а,
    возможно, дедушки и бабушки, играли в компьютерные игры на
    «Синклерах», оснащенных процессорами Z80 и 8080.
    В то давнее время микрокомпьютеры использовали
    операционную систему СР/М. Процессор мог адресоваться только
    к 64 килобайтам памяти. Когда Билл Гейтс начал протаскивать в
    массы свои MS-DOS и PC-DOS, операционная система СР/М
    была очень популярной. Под нее писались тысячи программ
    (только Applell развивал тогда свое направление). Гейтс, как
    обычно, подгреб все под себя, и MS-DOS была устроена с
    возможностью портировать старые программы, написанные под СР/М. В конечном счете процессор 8088 стал оперировать СОМ-
    программами, и с течением времени все это старье благополучно
    перекочевало в современные машины.
    В микропроцессоре 8088 все регистры были 16-битными. 16-
    битный регистр 8080 (так же, как и Z80) позволял адресоваться к
    64 килобайтам памяти.
    Если вам требовалось больше памяти, вы должны были иметь
    больше битов для адресации к памяти. 8088 мог адресоваться к 1
    Мгб памяти. Это достигалось хитрым трюком, называемым
    процессом сегментации. В нем использовались два регистра,
    создававшие 20-битный адрес физической памяти.
    Такая регистровая пара состояла из сегментного регистра,
    который содержал более важные биты адреса, и офсетного
    регистра с менее важными битами. (Чтобы вы не путались с
    сокращениями, я спонсирую вам список регистров
    Список
    АХ Сумматор
    ВХ Базовый регистр
    СХ Счетчик
    DX Регистр данных
    DS Сегмент данных
    ES Дополнительный сегмент
    SS Сегмент стека
    CS Сегмент кода
    ВР Указатель базы
    SI Индекс источника
    DI Индекс назначения
    SP Указатель стека
    IP Командный указатель
    Сегментный регистр указывал на 16-байтовый блок
    памяти, а офсетный регистр говорил, сколько байтов нужно
    было добавить к началу 16-байтового блока, чтобы найти
    желаемый байт в памяти.
    Например, если регистр ds был установлен до 1275 Hex, a
    регистр Ьх — до 457 Hex, то физический 20-битный адрес байта
    ds:[bx] был равен:
    1275НхЮН= 12750Н
    + 457Н
    12ВА7Н
    Существовала возможность записи одного физического
    адреса несколькими способами.
    Например, настройка ds = 12ВA Hex и Ьх = 7 соответствовала
    тому же самому физическому адресу 12ВА7 Hex. Программистам
    пришлось договариваться о правилах. При написании программ
    для микропроцессора 8088 сегментные регистры являлись
    подразумеваемыми значениями.
    Например, если писалась инструкция mov ax,[bx] и регистр
    Ьх равнялся 7, то регистр ах загружался словом, хранившимся в
    офсете 7 сегмента данных.
    Сегмент данных ds никогда не появлялся в инструкциях,
    потому что он в них подразумевался автоматически. Например,
    если ds = 12BAH, то вам следовало загрузить слово, хранящееся в
    физическом адресе 12ВА7Н.
    Микропроцессор 8088 имел четыре сегментных регистра: cs,
    ds, ss и es. Они назывались Code Segment (сегмент кода), Data
    Segment (сегмент данных), Stack Segment (сегмент стека) и Extra
    Segment (дополнительный сегмент). Все они служили разным
    целям.
    Регистр cs определял 64К-сегмент, где располагались
    программные инструкции, выполняемые процессором.
    Сегмент данных указывал место для размещения данных
    программы.
    Сегмент стека определял, где расположен стек программы.
    Регистр es отдавался в распоряжение программиста. Он мог
    использоваться для указания сегмента видеопамяти, для записи
    данных в видеопамять или в сегмент 40Н, где BIOS хранит
    критически важную информацию о низкоуровневой конфигурации
    компьютера.
    СОМ-файлы, как пережитки времен с 64К доступной памяти,
    использовали только один сегмент. Перед выполнением СОМ-
    файла DOS устанавливал все сегментные регистры до одного
    значения: cs=ds=es=ss. Все данные сохранялись в одном и том же
    сегменте, как и код самой программы.
    Так как любой сегмент равнялся 64К, СОМ-программа
    могла использовать для кода, данных и стека, максимум, 64К.
    И поскольку сегментные регистры только подразумевались в
    инструкциях, обычная СОМ-программа (не нуждавшаяся в
    данных BIOS или видеоданных) никогда не заботилась о них.
    Наша программа FLY — хороший пример. Она не содержит
    прямых ссылок на какой-либо сегмент. DOS может загрузить ее в
    любой сегмент, и она спокойно будет там работать.
    Перед загрузкой СОМ-файла в сегмент в офсете 100Н, этот
    сегмент настраивался DOS. Кроме того, DOS создавала PSP
    (Program Segment Prefix — префикс программного сегмента) в
    памяти от офсета 0 до 0FFH (см. табл. 2).
    PSP — это тоже наследие от операционной системы СР/М,
    когда ОС хранила важные данные о системе в низкой памяти.
    Большая часть PSP вообще не используется. Например, она
    содержит блоки контроля файлов (FCB — file control blocks) для
    открытия/чтения/записи/закрытия файла с помощью функций
    DOS - 0FH, ЮН, 14Н, 15Н и т. д.
    Никто из здравомыслящих людей не использует эти
    функции. Они — атавизм, оставшийся от СР/М. Вместо них
    применяли функции 3DH, ЗЕН, 3FH, 40Н и т. д., введенные
    разработчиками DOS 2.00. Но!!!!... эти старые функции все же
    можно использовать, и необходимые данные в PSP по-прежнему
    сохраняются.
    Вот почему PSP стал сокровищницей хакеров и пробиркой,
    в которой вирусмейкеры выращивают своих маленьких
    «зверушек»........
    Продолжение следует завтра)
     
    Последнее редактирование: 25.08.2012
  2. eXnatiOnz

    eXnatiOnz

    Статус:
    Оффлайн
    Регистрация:
    30.07.12
    Сообщения:
    914
    Репутация:
    530 +/-
    вроде маненько до меня дошло, но как то всё равно не ясно)
     
  3. 100yak

    100yak

    Статус:
    Оффлайн
    Регистрация:
    08.08.12
    Сообщения:
    171
    Репутация:
    65 +/-
    В третьем и четвёртом уроке будет всё обьясняться про сегменты и т.д. и т.п.Я же говорю))Просто привёл пример программы)))
     
  4. envoy93

    envoy93

    Статус:
    Оффлайн
    Регистрация:
    31.03.12
    Сообщения:
    415
    Репутация:
    272 +/-
    плохо скопипастил :\
     
  5. 100yak

    100yak

    Статус:
    Оффлайн
    Регистрация:
    08.08.12
    Сообщения:
    171
    Репутация:
    65 +/-
    Я знаю.В следующем уроке будет лучше)
     
  6. 100yak

    100yak

    Статус:
    Оффлайн
    Регистрация:
    08.08.12
    Сообщения:
    171
    Репутация:
    65 +/-
    Следующий урок будет сегодня в 7 часов вечера.
     
  7. ohmybeeper

    ohmybeeper

    Статус:
    Оффлайн
    Регистрация:
    08.08.12
    Сообщения:
    166
    Репутация:
    35 +/-
    отлично, ждем :)
     
  8. Vovan4ik161

    Vovan4ik161

    Статус:
    Оффлайн
    Регистрация:
    17.06.12
    Сообщения:
    56
    Репутация:
    28 +/-
    Спс!