Door Anoniem
Veel AV's gebruiken deze methode: start byte, lengte, checksum. er wordt 
gezocht naar een bepaalde startbyte (en dan het liefst een byte die niet 
vaak voorkomt in normale code, zodat er niet vaak onnodige (dure) 
checksums berekend hoeven te worden, zoals een 
pusha/popa/lidt/sidt/etc, die compilers normaal niet genereren), 
vervolgens  wordt er over de volgende 'lengte' aantal bytes een checksum 
berekend en vergeleken met een bekend checksum. en vaak wordt dit 
proces nog herhaald op een ander stukje code.
Een snellere methode is: checksum berekenen van een standaard plaats 
en daarna matchen met de verzameling checksums. Zodoende is hoef je 
niet steeds opnieuw checksums te berekenen, want dat is kostbaar.
De eerste poster had het over gebruik van DLL 
namen. DLL's zijn vaak 
standaard Microsoft libraries. Gebruik van dergelijke veel voorkomende 
DLL namen voor detectie is natuurlijk niet bruikbaar.
Sophos gebruikt vaak checksums- inderdaad niet altijd. Het is denkbaar 
dat Sophos een checksum van een (deel van) export sectie gebruikt.
Het nadeel van checksums is dat je snel detectie verliest als er een 
aanpassing wordt gedaan in de code. Het voordeel is snelheid. Vandaar 
dat Sophos een redelijke snelle scanner is/was.
Een klein nadeel van checksums - voorals als ze 16 bits zijn - is de 
mogelijkheid van false positives. Dat gebeurt dan ook zo nu en dan bij 
Sophos.
Het zijn heel andere false positives dan bijvoorbeeld bij Symantec als die 
een string gebruikt. Die fp's lijken dan op de malware die men wil 
detecteren. Bij Sophos is het tegendeel vaak waar. Zo kan Sophos een 
oud DOS virus detecteren in een stuk MIME. Of een e-mail worm in een 
SAP executable.