"A professor is one who talks in someone else's sleep."
THE FOREVER PERPETUALLY CONTINUOUS NEVERENDING STORY OF VIRUSES
(ONCE AGAIN RE-REVISITED)
by Richard Karsmakers
If you're searching for the latest knowledge in the field of
computer viruses you can consider yourself lucky. You have just
selected the latest update on virus news, both with regard to the
latest viruses as the latest virus killer...
Virus update
A few viruses have occurred after the ones I described in some
detail in ST NEWS Volume 8 Issue 1. One of them is a particularly
nasty one, as you will be able to see below.
Virus #71
Name: Beilstein Virus.
Type: Reset-proof memory-resident bootsector call virus.
Discovery date: March 16th 1993 (Volker Söhnitz).
Virus can copy to drive(s): Current floppy drive (A or B).
Virus attaches itself to: Hdv_bpb, Vbl_queue, Hdv_rw, Hdv_boot,
Gemdos, Xbios, regularly reset-resistant AND undocumented reset-
resistant.
Disks can be immunized against it: No.
Immunizable with UVK: No.
What can happen, and when: 1) It can delete specific files when
these are loaded by the user. These files are 'SAGROTAN',
'MDISK', 'FCOPYIII', 'FCOPY3??', 'DISKUS', 'DISKDEMO', 'TED_???'
and 'G_COPY', 2) It can clear partition "C" of your hard disk
when the virus in memory discovers that you are trying to trace
it (trace bit set, for example in a debugger), 3) It can create
garbage on your screen, 4) Keyboard, mouse and joystick can be
disabled, 5) Mouse movements can be inverted (like with the
"Ghost Virus"), 6) Printer output can be corrupted, 7) Modem
output can be corrupted, 8) A bomb error can be created, 9) The
system can be frozen until you enter the password "Apokalypse",
10) Memory can be cleared, followed by a reset, 11) The first
hundred sectors of a floppy disk can be cleared, and 12) It can
delete a folder. These are quite an amount of things that can go
wrong!
Resetproof: Yes.
Can copy to harddisk: No.
Remarks: This virus also codes itself and also fakes to be an MS-
DOS disk (just like the Zorro Virus). On top of that it uses an
ingenious system where bits of its code are swapped around and
where different bootsector offsets are used to make things extra
difficult. Even when not yet coded, there are at least 10
different versions that this virus can generate of itself. With
coding added, over 650,000 versions of this virus can exist. But
that's not everything: The bootsector that was on the disk
before it got infected (e.g. a virus free disk) is stored
somewhere else and executed after the virus installs itself.
This means that the message "this is a virus free disk" will
STILL appear even after the disk has been infected! It is a very
complex virus that, apart from the bootsector, uses four other
sectors on disk that are marked BAD in the FAT to make sure
they're not overwritten. The use of these four extra sectors
enable the virus to be bigger (hence the many different
destruction routines) and also allow it to buffer the original
bootsector previously present on the disk. The last naughty bit
about this virus is that, when it bends system variables, it
supplies regular XBRA ID codes of popular harmless applications
to itself (for example HABO, VREP, VIRA, CB2K, SBTS and WINZ).
The "Ultimate Virus Killer" correctly recognizes it anyway!
This is without a doubt the most nasty virus yet. It was written
by a student from Beilstein, a town in South Germany (hence its
name). It has only been supplied to specific virus killer
programmers and has so far not actually been spread as such.
Let's hope it will stay that way!
Virus #72
Name: Temporary Madness Virus.
Type: Reset-proof memory-resident bootsector virus.
Discovery date: March 16th 1993 (Volker Söhnitz).
Virus can copy to drive(s): Current floppy drive (A or B).
Virus attaches itself to: Hdv_bpb, undocumented reset-resistant.
Disks can be immunized against it: No.
Immunizable with UVK: No.
What can happen, and when: Every 65536 vertical blanks (on colour
that means about every 22 minutes) the mouse movement is
inverted for about 10 seconds.
Resetproof: Yes.
Can copy to harddisk: No.
Remark: In Germany, this virus is known as the "Mouse Coordinate"
virus.
Virus #73
Name: Darkness Virus (Nightmare of Brooklyn #2 'Darkness').
Type: Reset-proof memory-resident bootsector virus.
Discovery date: July 17th 1993 (Piotr Kowalczyk).
Virus can copy to drive(s): Current floppy drive (A or B).
Virus attaches itself to: Hdv_bpb, undocumented reset-resistant,
resvector, vbl_queue.
Disks can be immunized against it: No.
Immunizable with UVK: No.
What can happen: It can write garbage on the first 9 sectors of a
random track between 1 and 79. The first of those sectors will
then contain the text between quotes mentioned above with
'Name'. Additionally, the virus can screen black.
When does that happen: The disk track garbage writing happens
every other 8 copies that it writes of itself. The screen
blackening happens every 32768 vertical blanks (i.e. after about
11 minutes on colour monitors, about 7.5 minutes on monochrome).
Resetproof: Yes.
Can copy to harddisk: No.
Remark: First discovered in Poland. This virus uses an intricate
coding method which, like other recent viruses, allows it to
create hundreds of differently recognizable versions of itself.
Anti-virus #22
Name: Agrajag Boot 2.
Discovery date: July 1993.
Symptoms: At startup it will put the message "AGRABOOT 2" on the
screen. Whenever an executable bootsector is found while it is
present in memory, the screen will flash. It will flash RED when
such a bootsector is suspicious. Upon starting it will also find
reset-proof programs and the like. It will not copy itself to
any other disks of its own accord.
Remark: Written by Michael James from Glasgow, autumn 1992. Quite
a good Anti-virus actually.
History update
Of course I have not merely watched idly while virus programmers
were going through somewhat not unlike a revolution. I have
continued to upgrade the "Ultimate Virus Killer" so that it can
husband even your greatest fears (ahem).
- Version 5.8GB (March 28th 1993)
I had never guessed there were things left to be done. As I had
a period of heavy University exams prior to the program's
release, however, I got sudden amounts of unexpected coding
inspiration (this happens often before exams, at least with me).
Hence the following additions and bug eliminations.
* There were one or two bugs in the previous version. The RIGHT
shift key didn't actually skip the system status screen but the
LEFT one did. Now this is truly the RIGHT one. The DAY
belonging to the current date was wrong. Now it's OK again.
* Linkvirus scan is even faster. In version 5.7 there was a small
'bug' in the routine that didn't succeed in speeding up things
much. Compared to version 5.6, link virus scan is now over 3
times faster (as opposed to the previous version only being
almost 2 times faster).
* The program is now finally Falcon compatible. Memory
Configuration specification in the system status screen only
works on ST, however, as TT and Falcon configurations seem
never to have been documented by Atari. Information would be
welcome!
* Disks that get the '99% safe' message can now also be 'looked
at'. If they're almost completely filled with zeroes or another
value they need not be sent in for analysis - they're 100% safe
then.
* Form feed added after bootsector file output to printer.
* When the "Ultimate Virus Killer" is used from hard disk, it
will keep track of its activities (like total number of
sessions, total number of disks checked and viruses killed,
that sort of thing). It will store these values in a file
called "UKV.HST". The new program file on the disk,
"HISTORY.PRG", displays this history file's contents. Make sure
the "HISTORY.PRG" file is in the same directory as the
"Ultimate Virus Killer" and the "UVK.HST" file! Your display
needs to have 80 columns for this program to display things
properly. More columns will work too.
* An optional file has been added, "UVK.CNF". This file may be
used to determine which file extensions executable files are
allowed to have, which the "Ultimate Virus Killer" needs to
know when checking an entire partition (or an entire folder)
for link viruses. Please refer to the appropriate part of the
manual for further explanation.
* Data line format optimized even further!
* The Atari Extended Control Panel modules (.CPX files) are
executable files that have another structure than other,
ordinary program files. Basically they are like regular program
files with the different that they have a 512 byte header. When
files with a .CPX or .CPZ (disabled .CPX) extension are
checked, this header is automatically skipped so that analysis
proceeds as usual.
The Atari Extended Control Panel is a new version of the old
Control Panel accessory.
* The program file can be renamed to "UVK_5_8.ACC" in order to be
used as an accessory. Some differences: You will have no
possibility to vieuw the system status screen and the options
with the configuration-and history-files (explained above) are
skipped. The options 'look at it' (to look at a bootsector) and
'help' can be selected but have no effect. Make sure the
"UVK.PAK" file and the "UVK_5_8.ACC" file are both in the root
directory of your boot drive. The boot drive will usually be
"C" if you have a hard disk, or "A" if you have none. With
bootsector data file loaded, the accessory will take up a bit
more than 700 Kb of memory, so it won't work on half meg
machines and will barely be useful even on 1 meg. With the
bootsector data file not present in the same directory as the
accessory, memory consumption will be slightly less than 400
Kb.
* The "WACOM" graphics pad is supported now. All mouse input will
be replaced by the graphics pad import provided that the
"TABLETT.PRG" driver program is found in the same directory as
the "Ultimate Virus Killer" program. Do note that the regular
mouse is not reacted to then!
* Due to something or other, the "Signum D" virus was wrongly
recognized. This is now fixed.
* Version 1.1 of the "Ultimate Virus Killer" CPX module replaced
the old version 1.0. Please refer to the CPX manual for details
on the changes.
* The English versions now also contain a special half-megabyte
version of the virus killer.
Its main statistics: 1359 recognized bootsectors, 72 recognized
bootsector viruses, 5 recognized linkviruses, 38 recognized anti-
viruses, 126 recognized resident applications and 34 recognized
packer formats. Up to 658 bootsectors can be repaired.
- Version 5.8D GB
Demo version creation is still a doddle. Date history follows
below.
February 26th 1993.
- Version 5.8USA (March 28th 1993)
Identical to version 5.8GB, with the exception of the main menu
address, the date entry format and selected text changes. Made
for distribution by Oregon Research Associates.
- Version 5.8NL (March 28th 1993)
Identical to version 5.8GB, with the exception of the name ("ACN
Final Virus Killer") and all text output, which is in Dutch.
- Version 5.8BRD (March 28th 1993)
Identical to version 5.8GB, with the exception of all text
output, which is in German.
- Version 5.9GB (June 6th 1993)
In the previous version there were many things left to be done.
Well, it turned out that I had done some things rather
improperly. So this version, apart from some new things and
improved statistics, basically turned out to be a bug fix. This
is also the reason (apart from the sheer pending presence of the
summer season) for the earlier release date.
* Program can now REALLY be used as an accessory. It worked fine
on my system previously, for some reason or other, but usually
caused weird messages and sometimes bombed with other people.
Accessory operation has a small disadvantage I would like to
point out to you: The internal GEM 'out of memory' error (which
is a bug inside GEM) normally causes the program to crash and
exit, but in accessory mode this locks up the entire system.
Only a cold reset will help you then. Depending on the size of
your machine's disk cache this will happen when lots of files
are being checked for link viruses.
* If you had to enter the date and time on medium resolution, the
text size was too big which looked sloppy and could hardly be
read. This has been fixed.
* There was a rather very serious bug (causing bomb crashing)
when encountering specific MS-DOS compatible disks that did NOT
have a virus on them. The ironic thing was that you could be
sure not to have a virus on a disk of which the bootsector
caused a crash! Anyway, this bug, which got 'built in' along
with the advanced "Beilstein" virus recognition, is fixed now.
* A rather rare and subtlely different version of the "Uluru"
link virus was discovered. This is now also recognized. Credit
for this goes to my dear colleague Chris Brookes. This virus is
merely regarded as a different version of the same virus
because either version seems to be able to generate the other.
* The half megabyte version is now even smaller, with all repair
selector routines removed (these were in the separate
REPAIR.PRG program for these users anyway).
* While formatting a disk, "formatting..." appears on the screen.
* The "REPAIR.PRG" program for owners of machines with half a
megabyte of memory now no longer supports keyboard control in
the alert boxes. The routines had to be removed in order for
the ever increasing bootsector data file to fit in half a
megabyte.
Its main statistics: 1390 recognized bootsectors, 72 recognized
bootsector viruses, 5 recognized linkviruses, 38 recognized anti-
viruses, 130 recognized resident applications and 36 recognized
packer formats. A total of 669 different bootsectors can be
repaired.
- Version 5.9USA (June 6th 1993)
Identical to version 5.9GB, with the exception of the main menu
address, the date entry format and selected text changes. Made
for distribution by Oregon Research Associates.
- Version 5.9NL (June 6th 1993)
Identical to version 5.9GB, with the exception of the name ("ACN
Final Virus Killer") and all text output, which is in Dutch.
- Version 5.9BRD (June 6th 1993)
Identical to version 5.9GB, with the exception of all text
output, which is in German.
- Version 6.0GB (October 3rd 1993)
Finally I have spent a lot of time on the program so now it is
entirely compatible with GEM. It should work in any resolution as
long as it has at least 640 by 200 pixels, with any Operating
System (including "MultiTOS"), on any machine, now and in the
future. I don't think the program has ever been through so many
enhancements and changes from one version to another.
Finally, the "Ultimate Virus Killer" is ready for a new era of
computing.
* All non-GEM routines have been replaced by GEM routines, based
on Gregor Duchalski's "Flydials" library (which is a collection
of shareware source code routines that I'd advise every serious
"GfA Basic" programmer to use). The address to obtain these
routines at (they have a shareware registration fee of DM 30,-)
is Baueracker 15a, W-44627 Herne, Germany.
* The manual has been revamped, mainly adapted to the new GEM
things and rephrasing of stuff like "Search'n'Destroy" to
"Seek'n'Destroy" and "Repair disks" to "Restore disks". There
are many more little changes though, and as a whole it should
be easier to understand now.
* There was a bug in the BPB repair routine, causing a damaged
BPB to be written even after it having been repaired. Now gone.
Thanks to Kai "Antidote" Holst for finding this one.
* Half meg version used to have the restore data lines still in
there. This is now gone, which saves another 19 Kb.
* Extended file selector calls are used now when a TOS version of
1.04 or higher is found.
* Due to the ultra-comfortable [HELP] key support in the new GEM
environment, the so-called permanent help mode has been
discontinued.
* A new help screen has been added for the system status screen.
* The meaning of the [CONTROL] key during system status screen
analysis has changed again (and for the absolutely final time):
Pressing it will now slow down analysis, and default display
speed will be fast.
* Thanks to an optimization of the internal algorithms, the
extensive system status screen analysis speed has now been
increased by 61%, of which 10% are thanks to Martijn Wiedijk.
* Function-and cursor-key support exchanged for [ALTERNATE] key
shortcuts.
* AES (Application Environment Services) version number now also
displayed in extensive system check screen.
* Link virus scan now up to 74% faster. Thanks to my good friend
Kai for the golden tip that took off 55%: Never use any "GfA
Basic" commands such as SEEK, OPEN, CLOSE and BGET, but instead
use the direct GEMDOS equivalents. One also has to use the DTA
buffer instead of LOF(#x). The other 19% were caused by some
optimizing of my own.
* Bootsector virus scan is now a massive 63% faster. Of these,
15% are due to another tip by Kai: Never use single-character
RIGHT$ and LEFT$ but instead use BYTE{} (beware for zero length
strings though!). Another 7% are due to the fact that the
program no longer uses byte-length compares. The remaining 41%
are the result of two rainy days filled with heavy coding and
my converting the recognition data line format. The dataline
format got 10% smaller, the actual bootsector scan suddenly
almost ridiculously fast. For the technically minded among you:
All regular string expressions are now stored as CVI and CVL
strings of the same (this gave some problems with values of 0,
4, 10, 13 and 34, but I worked a way around not being allowed
to use them).
It is interesting to note that during one year of development
(from version 5.6 to 6.0) the bootsector virus scan speed has
decreased from an average of 1.77 to 0.12 seconds of analysis
needed per sector, which is a speed increase of over 90%!
* The command line syntax didn't support the separate link virus
folder scan apart from the single file or whole partition
scan. Now it does.
* Additionally, you can now also just feed a regular program name
(including proper path and such) to the program. If the entire
command line as such is found as a file somewhere, all other
routines will be bypassed and the program will check that
particular file for link viruses. No additional parameters can
be passed on. By default the program will wait for a key once
finished and will also check for packed file information. This
works especially excellently if you have extended desktops such
as "NeoDesk". You can then even drag the icon/filename of the
file to be checked on the "Ultimate Virus Killer" program icon
if you want to.
* In certain circumstances the accessory version could crash due
to a bug in the internal "GfA Basic" MENU_REGISTER command.
This has now been replaced by an own menu register routine.
* Although the internal bootsector restore data file depacker
routine is still the same (Altair's "Atom" packer version 3.5),
the actual program file is now compressed using Keith Baines
"Pa Pack" version 1.01. This is not as effective as "DC Squish"
that was used earlier but, outrageous though it sounds, files
compressed with "DC Squish" are not allowed to be spread. "Pa
Pack" is quite good and supports accessories, as did "DC
Squish".
* The "Chameleon" accessory is now supported, finally. This is an
accessory that can load and unload other accessories - such as
the "Ultimate Virus Killer" when it is used as such.
"Chameleon" allows for accessories to be loaded from other
directories rather than the root directory of your boot drive,
which causes problems with most accessories that have to load
supplemental files such as a resource file. The "Ultimate Virus
Killer", when started as an accessory, will scan all current
directories of all valid partitions until it finds the
"Ultimate Virus Killer" resource file. Do note that these are
all root directories, too, unless you have opened a window to
another directory previously! As a rule you should use the GEM
desktop to open the window in which all the "Ultimate Virus
Killer" files are and after that use "Chameleon" to load the
accessory.
* In the system status check, both ST and TT RAM types are now
supported and recognized, as well as previously wrongly
recognized regular ST-type memory configurations (yes, Frank,
this is for you!). What can I say? Amazingly, there isn't a
*single* book that documents this stuff correctly. Here, thanks
go to H.W.A.M. de Beer, author of the most excellent Public
Domain "SysInfo" program - he supplied the information and
source code necessary for the proper implementation of all
this. When running the "Ultimate Virus Killer" with "MultiTOS",
due to memory protection stuff the memory amount found may not
be correct as Mr. de Beer's routine can then not be used.
* The birthday date format has been optimized. Also, 100% of all
possible dates have one or several birthdays now.
* The "DATA.PAK" datafile is no longer totally decompressed upon
loading. Only when a specific bootsector is restored, the
appropriate (tiny) part of the data file is decompressed and
used. In the current version this saves over 140 Kb of memory,
i.e. you now need over 140 Kb less to be able to use the data
file than before.
* Additionally, it is now possible to use the whole program on
half megabyte machines again. You can even restore bootsectors,
but this now requires you to locate the "DATA.PAK" on disk so
that the program can load and decompress the appropriate part
needed. After that you are requested to insert the actual disk
so that the program can write the bootsector to disk. You no
longer need to have the data file in memory to be able to
restore bootsectors, even though having it in memory will prove
to be easier, especially when restoring more than one
bootsector.
* Due to the overall space savings, the accessory version of the
"Ultimate Virus Killer" will now use 520 Kb or 340 Kb of RAM,
with and without the data file loaded respectively.
All speed increases are dedicated to Kai Holst, who has been
ruthlessly irritating me for at least a year now with regard to
his virus killer being faster than mine. Although he has been
driving me out of my mind in the process, if it hadn't been for
him the "Ultimate Virus Killer" would still be the ponderous
dinosaur it was in the olden days. At least the only thing I
could compare, the link virus scan, is now 30% faster than his.
Its main statistics: 1486 recognized bootsectors, 73 recognized
bootsector viruses, 5 recognized linkviruses, 40 recognized anti-
viruses, 137 recognized resident applications and 43 recognized
packer formats. A total of 710 different bootsectors can be
repaired.
- Version 6.1GB (Approximately January 1994)
Or: What may occur in future updates.
* When running the "Ultimate Virus Killer" as a desk accessory
while using Gribnif's "NeoDesk" (version 3, anyway), the mouse
background is buffered incorrectly. This is due to an as yet
unexplained anomaly connected with "NeoDesk", and I haven't got
a clue as to how this should be fixed.
* When using the "Ultimate Virus Killer" with "MultiTOS", you
cannot yet actually switch between tasks. This may be
alleviated soon. Then again, maybe not.
* The Unified drive (drive "U") under "MultiTOS" can not be
checked. This will probably remain so. Maybe not.
* The general statistics will be enhanced as much as they can,
and possible bugs will be discarded.
Do note: Your suggestions and bug reports WILL be read and ARE
taken into consideration!
IPV deal trashed
As some of you may know, the "Ultimate Virus Killer" was sold in
Germany by Ippen Pretzsch Verlag, the company that also does (or
did, or used to do, or whatever) "KAOSdesk". Unfortunately
royalty payments have been overdue several times so that
eventually the contract had to be terminated under a "payment
within three months" clause that assured all rights reverting
back to the author, i.e. me.
Personally I can't say I regret this. IPV have proved to be very
bad at supporting the program, what with zero things having been
sent through to me for closer analysis whereas I have proof that
several people have sent in material.
All I can say is that I'd like to apologize for the loss of your
letters and disk(s), which happened entirely without me knowing
about it. Let's hope the future will improve on this.
These are all the things that needed to be said in this issue's
viral column. Thanks for touching, next time you can do it again.
Disclaimer
The text of the articles is identical to the originals like they appeared
in old ST NEWS issues. Please take into consideration that the author(s)
was (were) a lot younger and less responsible back then. So bad jokes,
bad English, youthful arrogance, insults, bravura, over-crediting and
tastelessness should be taken with at least a grain of salt. Any contact
and/or payment information, as well as deadlines/release dates of any
kind should be regarded as outdated. Due to the fact that these pages are
not actually contained in an Atari executable here, references to scroll
texts, featured demo screens and hidden articles may also be irrelevant.