If we consider a virus to be the transport mechanism only, we will likely see payloads that we would identify as time and logic bombs, buffer overflow exploits, and Trojan horses. Many recent viruses have read the user's address book in order to send the virus to other systems. Some viruses infected floppy disks so that systems were infected when the disks were read. Payloads can be anything from innocuous banners to severe filesystem damage. On the other hand, some viruses have caused so much damage that a simple reinstallation of the operating system was insufficient to repair them.
Viral signatures are the patterns used to identify a virus within a file.
In order for a virus to be detected, it must be identified and its signature established and distributed. Frequent updates of the data files associated with antiviral software can protect users from known viruses. Unfortunately, there's a significant difference between the time a virus is first released and the time a pattern allowing its detection is available. What is needed, but is extremely difficult to develop, is a way to recognize the character of a virus and differentiate it from normal system activity. Many viruses attempt to hide themselves.