home *** CD-ROM | disk | FTP | other *** search
-
- *********************************************
- *** Reports collected and collated by ***
- *** PC-Virus Index ***
- *** with full acknowledgements ***
- *** to the authors ***
- *********************************************
-
-
- Report from Jim Bates - The Virus Information Service - June 1990
-
- === Virdem Virus ===
-
-
- The book by Ralf Burger has already been reviewed (VB Oct 89) and
- the incredible irresponsibility and arrogance of the author in
- publishing virus source code has been noted both here and elsewhere.
- Burger's suggestion (in 1986) that viruses - "used properly may
- bring about a new generation of self-modifying computer operating
- systems" has still not been realised and subsequent events have
- shown his book to be one of the current sources of reference for the
- inadequate and immature people who write viruses. Another area
- where Burger has provided the virus writers with working material to
- further their craft is with so-called "demonstration" viruses.
- These not only mean that more recognition "signatures" need to be
- published, but they will also produce "families" of similar strains
- (like the Vienna group) which makes the whole process of fighting
- the threat much more complex than it needs to be. It is well past
- time that international legislation was formulated to make such
- activity a criminal offence. The most well known of Burger's demos
- is his VIRDEM virus, mentioned in the book. Fortunately, this is
- poorly written and contains bugs so that acolytes will need to
- disassemble AND debug these programs before they can advance their
- own modifications. However, this will undoubtedly be done and new
- viruses can be expected to use some of the techniques used in VIRDEM
- and other "demo" virus code. For this reason, a brief description
- of VIRDEM may be useful to anti-virus researchers.
-
- VIRDEM uses a "generation" number for each successive infection up
- to a maximum of 9. This is very simply done by incrementing a
- counter within the infection cycle and checking that it once it
- reaches nine, the counter is disabled. This is used to collect
- indexed access to a table of entries which are, in turn, used as a
- basis for a guessing game when infected programs are executed. What
- happens is that the generation number is used as the upper limit of
- an integer to be guessed. An pseudo-random integer is generated by
- accessing and gating the system clock and if the operator's guess
- matches it then program operatio is allowed. Otherwise the program
- does not run and an appropriate message is displayed (I disassembled
- the original Version 1.06 with German text).
-
- Burger's own comments on this are worth repeating to indicate the
- weak reasoning and woolly thinking that this man indulges in :-
-
- "Unfortunately the source code cannot be published because with the
- help of the source code anyone would be able to change the
- manipulation task and have a non-overwriting virus in 8088 machine
- language. In addition it would be almost unthinkable if there were
- suddenly numerous dangerously modified versions of VIRDEM.COM
- around."
-
- This is either blindness or stupidity! He obviously assumes that
- anyone buying (?) a demonstration virus will be incapable of
- disassembling it. VIRDEM is quite easy to take apart and equally
- easy to understand (and modify) and is almost as dangerous in it's
- code form as it would be in source code. It should also be noted
- that VIRDEM is NOT a "non- overwriting" virus, it reads the first
- 1280 (500H) bytes of the target program file, and appends them to
- the end of the file. It then overwrites these initial 1280 bytes
- with the virus code. Finally, a small stub recovery routine is also
- appended. The virus only infects floppy disks placed into drive A:
- and rather than reporting in detail on the virus operation, I shall
- list Burger's own comments regarding it - together with my own
- findings after disassembly:
-
- 1) All COM files up to the second subdirectory are infected. (The
- virus is non resident and infects only one file during each
- execution)
-
- 2) The first COM file in the root directory (often
- COMMAND.COM) is not infected. (This is true although no reason
- is given. The possibility that COMMAND.COM will be the first
- file in the root directory is noted but no attempt is made in the
- code to avoid infecting it if it isn't.)
-
- 3) COM files of more than about 1.5K in length are expanded by
- about 1.5K, shorter files are expanded by about 3K. (Files
- longer than 1380 bytes are expanded by 1366 bytes - shorter files
- are first made 1280 bytes long and THEN expanded by 1366 bytes.
- No check is made on whether there is actually room for virus code
- and a work area within the 64K COM format limit so files greater
- than 62122 bytes are irreparably damaged.)
-
- 4) Infected programs remain completely functional. (As noted above,
- this is not true for large files and there are also some
- unpredictable and possibly dangerous effects when the machine
- configuration includes certain device drivers.)
-
- 5) An infected program is recognised and cannot be infected twice.
- (True - an infected program is recognised by an initial word of
- 9090H.)
-
- 6) VIRDEM.COM inserts an additional function into the infected
- program. This additional function is a guessing game whose
- difficulty level is dependent on the virus generation. (True)
-
- 7) VIRDEM mutates up to the ninth generation. After that the
- propagation continues but no mutation takes place. (Maybe the
- word "mutates" was an incorrect translation from the original
- German. Certainly the virus counter is altered but not as a
- result of a "mutation", rather because of an infection counter.)
-
- This virus uses only DOS function calls and since it is not
- resident, it has no defence mechanisms against anti-virus search
- programs. Therefore a version with only simple modifications will
- not be difficult to detect. More sophisticated changes will require
- separate disassembly and reporting. The hexadecimal recognition
- string for this version is :-
-
- 03 C3 8B F0 26 8B 1C 8B F3 BF 00 01 B9 00 05 90
-
- at offset 411 (19B Hex) from the start of an infected file.
-
- The fact that Burger was allowed to publish a "cookbook" and
- "demonstration" virus code for aspiring virus writers is an
- international scandal. His irresponsibility is matched only by his
- publishers (DATA Becker and ABACUS).
-
- The information contained in this report is the direct result of
- disassembling and analysing a specimen of the virus code. I take
- great pains to ensure the accuracy of these analyses but I cannot
- accept responsibility for any loss or damage suffered as a result of
- any errors or omissions. If any errors of fact are noted, please
- let me know at :-
-
- The Virus Information Service,
- Treble Clef House,
- 64, Welford Road,
- WIGSTON MAGNA,
- Leicester LE8 1SL
-
- or call +44 (0)533 883490
-
- Jim Bates
-
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- ++++++++++++++++++++++++++ end of reports ++++++++++++++++++++++++
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++