The term "adware" is an abbreviation for "advertising software" and is used for programs designed to display usually unwanted advertisements to the user. They can be very disruptive, like pop-up windows covering most of the screen and interfering with the user's work, or pretty subtle, like adding small pictures to the sites viewed by the browser. Although sometimes displaying advertisements is a legitimate source of income for the author of an otherwise free product, in most cases the advertisements are unwanted and considered disruptive by the users.


A backdoor is a piece of code in an access authorization program, the purpose of which is to allow the attacker to enter the protected system without passing though the normal authentication process (i.e., by bypassing the "front door"). Backdoors are inserted either by an attacker who has already gained unauthorized access by other means (e.g., an exploit), so that he can re-enter the system easily later, or by the developers in order to provided them with an easy and hassle-free access to the system, should the normal authentication process fail for one reason or another. The latter is extremely dangerous practice, since the existence of such a backdoor could be discovered and exploited by illegitimate parties.

Computer Virus

The term "computer virus" was first introduced by Dr. Fred Cohen in his Ph.D. thesis. He developed a theoretical, mathematical model of computer virus behavior, and used this to test various hypotheses about virus spread. Cohen's formal definition (model) of a virus does not easily translate into "human language", but his own, well-known, informal definition is "a computer virus is a computer program that can infect other computer programs by modifying them in such a way as to include a (possibly evolved) copy of itself". Note that a program does not have to perform outright damage (such as deleting or corrupting files) in order to be classified as a "virus" by this definition.
The problem with Cohen's human language definition is that it doesn't capture many of the subtleties of his mathematical model - as indeed, few informal definitions do - and questions arise that can only be answered by checking his formal model. Using his formal definition, Cohen classifies some things as viruses that most users (and many experts) would not consider viruses. For example, under certain circumstances, a backup program or a compiler compiling its own source can be classified as a virus by Cohen's formalisms.
Several other definitions of the term "computer virus" have been proposed, but it is probably fair to say that most of us are concerned about things that are viruses by the following definition:
A computer virus is a self-replicating program containing code that explicitly copies itself and that can "infect" other programs by modifying them or their environment such that a call to an infected program implies a call to a possibly evolved copy of the virus.
Computer viruses are actually a special case of something known as "malicious software" or "malware". It is important to understand the distinctions between viruses and these other forms of malware - computer viruses are the only kind of malware that can replicate itself.

Computer Worm

Unlike computer viruses, computer worms are much less strictly defined. Fred Cohen attempted to give a formal definition of them in one of his papers, but it didn't gain wide acceptance. There are essentially three different schools of thought regarding what exactly is a computer worm.
According to the most popular one, computer worms are a special case of computer viruses which explicitly use the network to spread from one computer to another. "Explicitly" means that they are network-aware and actively use the network connectivity to locate and infect another computer - as opposed to, for instance, ending into another computer because they infect files in randomly chosen directories and one of the directories they happened to choose also happened to be mapped from a server and accessible as a "local" directory on the infected computer.
According to another school of thought, computer worms are a special kind of viruses that do not attach themselves to other programs but spread as a whole, self-contained program (or set of programs). The adherents of the first school of thought object that viruses which attach themselves to other programs are historically known as "parasitic viruses", so those that do not can be called "non-parasitic" without the need to call them "worms". Also, several kinds of computer viruses that do not modify other programs (for instance, boot sector viruses) are, also historically, not called "worms".
A third school of thought argues that computer worms are a separate kind of self-replicating malware (i.e., they are not viruses) which is able to infect other computers without the need for user interaction (such as executing manually an infected program).
The reason for this mess of definitions is because the historically first malicious program about which everybody agrees that it was a worm was the Morris Worm and it had the properties of all the definitions mentioned above. So, the different schools of thought have just picked different subsets of its properties as essential for making it a worm.

Logic Bomb

A logic bomb is a piece of code in a program, usually coded by its developer(s), which is normally dormant but is designed to activate when certain external conditions are met and to cause some kind of damage. The damage can be anything doable by a program - deletion of information, leaking of information, blocking of access, providing unauthorized access and so on. The malicious action is not the whole purpose of the program; the latter usually performs some kind of desired action. And the logic bomb is programmed at the time when the program has been developed; it is not the result of external infection or any other kind of manipulation.