Title: Self-Replicating Code in order to combat either Viruses/Spyware or Spam Objective: The purpose of this project would be to fight against two of the most common problems affecting modern computers, Viruses and Spam. The program would be based to learn on habits and change itself appropriately to become as much as specific to an individual user as possible. Justification: With modern Viruses and Spam, the traditional ways of fighting these things need to be improved since these themselves have progressed so far they will often be able to slip passed most defense systems. The Internet and virtually all computers are greatly affected by this, with mass EMail sent out daily due to spam and viruses taking bandwidth and destroying machines, they need to be dealt with very seriously in there modern iterations. Many companies are looking at fighting spam, spyware, and viruses, but few are using new approaches and thus the spam, spyware, and viruses are slipping by and effecting numerous machines. Description: I will do the project by looking at the most common methods of infection of viruses/spyware and common threads between Spam messages. The program will base its spam detection off of what it believes the user to consider spam. The program will try to defend against viruses/spyware by finding "troubled" areas of the operating system, monitoring them, and also changing locations and methods of scanning to produce a seemingly random assault on Viruses/spyware, by changing methods of looking for them it will be harder for them to evade the detector and cause prolonged effects. The program should be able to alter itself as it's concept of dangerous programs changes, and change searching based on which methods of searching proved most effective in the past. Limitations: The primary limitations will be time and testing. It will be hard to perform such a massive task as this without requiring lots of other time dedicated to the topic. I hope to carry on the project however as something that interests me even after I have finished the Tech Lab. Another limitation will be the amount of testing the project will receive, it will be hard to get a concept that works on all users since there is such a variety of people using computers and the Internet.