Sé que la era del gusano que se propaga solo ha terminado, pero ¿tiene este mecanismo para determinar si una máquina ya se ha infectado o no se ha utilizado alguna vez? Cuando se ejecuta un virus, comprueba si la máquina ya está infectada al buscar una cadena, por ejemplo, una clave llamada xyz
en HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft
. Si se encuentra, significa que el sistema ya ha sido infectado. Si no se encuentra, el virus creará una nueva generación de sí mismo, que busca abc
en lugar de xyz
, crea la entrada de registro abc
, inicia la nueva generación y se elimina.
En pseudocódigo
//initialize string matchMe to an arbitrary value
if(findThread(matchMe))
//machine already infected
else
matchMe = getRandomString()
addtoRegistery(matchMe)
spawnNewGeneration(matchMe)
deleteSelf();
De esta manera, no deja ninguna señal de fácil acceso que un antivirus pueda buscar.