A computer program that causes it to be classified as a virus is not its ability to destroy data, but its ability to gain control of the computer and make a fully functional copy of itself. Not all computer programs that are destructive are classified as viruses because they do not all reproduce, and not all viruses are destructive because reproduction is not destructive. But, all viruses do reproduce. TOOLS NEEDED FOR WRITING VIRUSES Viruses are written in assembly language. High level languages like Basic, C, and Pascal have been designed to generate stand-alone programs FUNCTIONAL ELEMENTS OF A VIRUS Search Routine Copy Routine Anti Detection Routine