STONED variant: AZUSA virus
*********************************************
*** Reports collected and collated by ***
*** PC-Virus Index ***
*** with full acknowledgements ***
*** to the authors ***
*********************************************
STONED variant: AZUSA
---------------------
Date: Wed, 27 Mar 91 11:31:48 -0500
From: Padgett Peterson <padgett%tccslr.dnet@uvs1.orl.mmc.com>
Subject: Azusa (PC)
It seems that quite a few folks are getting hit by the AZUSA virus.
Removing it, while not very difficult, is complicated by the fact
that the virus has completely overwritten the master boot record
code so that the original cannot be simply retrieved from another
location as with most such viruses (STONED, JOSHI, etc). Since the
virus has also overwritten the ASCII warning messages, simple
patching of the virus code to remove the infection is not a good
solution.
The virus does contain the essential partition table information
from the uninfected code in the proper offset (BE - FD) so removal
of the virus requires the following steps:
1) Obtain a "good" master boot record from the same DOS version or
higher.
2) Cold boot the infected machine from a write protected
floppy
3) Extract the partition table information from the virus 4)
Graft the partition table into the uninfected MBR code 5) Overwrite
the virus with the composite MBR code.
The following assembly language fragment can be used to perform this
function. It assumes that a "good" MBR has been loaded into offset
200h-3FFh and that the infected PC has been cold-booted clean.
(DEBUG format).
MOV AX,0201 ;read a sector
MOV BX,0400 ;into offset 400h-5FFh
MOV CX,0001 ;MBR
MOV DX,0080 ;fixed disk
INT 13
CMP WORD PTR [03FE],AA55 ;make sure it was read
JZ 0118
JMP 013C ;exit with ERRORLEVEL if not
PUSH CS ;align segment registers
(0118) POP DS
PUSH DS
POP ES
MOV SI,05BE ;point si & di at table areas
MOV DI,03BE
MOV CX,0020 ;40 bytes = 20 words
REPZ
MOVSW ;put table into clean MBR
MOV AX,0301 ;write one sector (0127)
MOV BX,0200 ;from the "good" area
MOV CX,0001 ;to MBR
MOV DX,0080 ;of infected disk
INT 13 ;we could read it before so
JB 0127 ;try again on failure
MOV AX,4C00 ;exit ERRORLEVEL zero (pass)
INT 21
MOV AX,4C01 ;exit ERRORLEVEL one (fail) (013C)
INT 21
Padgett
ps - fiddling at this level is not for the inexperienced, caveat
y'all.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++ end of reports ++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comments
Post a Comment