tags:

views:

545

answers:

4

How do anti-virus programs detect if something is a virus or trojan?

I'm from Turkey, please keep the English simple if possible, thanks.

A: 

http://www.google.com/search?q=how+does+antivirus+work

the first link was pretty good:

  • virus dictionary - looks for known signatures, for example the UPX executable compression algorithm is popular to make the payload really small.
  • suspicious behavior - detects things that don't happen in everyday work, like writing to another executable.
Dustin Getz
Although it gives a good answer, linking to Google is often considered poor etiquette on SO. Just an FYI since I've been downvoted before for doing this.
Jacob Adams
I wouldn't downvote over something so trivial, but there is a point: Google rankings shift. The article Dustin referenced is at http://www.antivirusworld.com/articles/antivirus.php
Steven Sudit
+4  A: 

There are different types of virus detection. Some of the different techniques they use are

1) Look at binary makeup of file for match or partial match in database of known viruses and trojans (most common technique)

2) Watch what program does and see if it ever does anything similar to viruses/trojans

3) Analyze program code (sometimes disassemble program code) and look for malicious things. This is often very difficult and usually only advanced detection programs do this.

Jacob Adams
3 is very slow too :)
lfaraone
A: 

They use signatures, or definitions of what a virus looks like, and compares them to files it scans.

See this article from SciAm for a good explanation.

lfaraone
There's also heuristic scanning and behaviorial scanning, at least in any decent modern AV.
Joe
A: 

There are three basic ways to find viruses. You can scan files to see if they have virus code in them from known viruses. You can scan files to see if the code will do virus-like things. You can wait until a program does something it should not do, and flag the program as infected.

You would scan files when they are first created, and you would also do it on a schedule after that. You would have to install a kernel driver in order to watch what programs do and stop them from doing malicious things.

Many anti-spyware programs work exactly the same way. For example, Spybot S&D can watch for Registry changes that could be spyware installations.

jprete