So che l'era del worm auto-diffusione è finita, ma ha questo meccanismo per determinare se una macchina è già stata infettata o non è mai stata utilizzata? Quando viene eseguito un virus, controlla se la macchina è già infetta ricercando una stringa, ad esempio una chiave denominata xyz
in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft
. Se viene trovato significa che il sistema è già stato infettato. Se non viene trovato, il virus genererà una nuova generazione di se stesso, che cerca abc
anziché xyz
, crea la voce di registro abc
, avvia la nuova generazione ed elimina se stessa.
In pseudocode
//initialize string matchMe to an arbitrary value
if(findThread(matchMe))
//machine already infected
else
matchMe = getRandomString()
addtoRegistery(matchMe)
spawnNewGeneration(matchMe)
deleteSelf();
In questo modo non lascia alcun segno facile e immediato che un antivirus possa cercare.