TL; DR: i computer non sono entità autonome come gli organismi, con alcun istinto di sopravvivenza. Eseguono solo istruzioni e, a volte, eseguono istruzioni che non ci piacciono, quindi eseguiamo altre istruzioni per trovare quelle sbagliate.
Ho iniziato a dirlo nei commenti, ma penso che ci sia molto altro da dire.
La metafora del virus è obsoleta e troppo ampiamente utilizzata da persone che non capiscono come funzionano effettivamente i computer. Provano a paragonarli a cose viventi, perché comprendono le cose viventi. Ecco una metafora migliore.
Sei un impiegato. Lavori per una mega-corporazione gigante, dove non vedi il tuo capo. Non ti è mai stato detto perché fai il tuo lavoro, non sai nemmeno cosa fa la tua azienda. Tutto quello che sai è che ti mostri al lavoro ogni giorno e segui le tue istruzioni.
C'è una piccola finestra vicino alla tua scrivania, che è l'unico modo per interagire con chiunque altro. Non vedi nessuno, ma a volte pezzi di carta escono dalla finestra.
Le tue istruzioni sono sempre le stesse all'inizio, ma hai una grande pila di carte sulla scrivania. Alcune contengono istruzioni, altre contengono cose che hai scritto. A volte le tue istruzioni ti diranno di trovare un pezzo di carta diverso e di iniziare a usarlo come istruzioni. A volte ti dicono di cambiare i pezzi di carta, strappandoli o cancellandone parti. (Questo è ciò che esegue un programma. A volte i programmi modificano i file, a volte eseguono altri programmi, ecc.)
A volte le tue istruzioni ti dicono di aspettare vicino alla finestra che arrivi altra carta. Il documento potrebbe avere un'immagine, potrebbe avere del testo o potrebbe avere più istruzioni. (Questo è ciò che accade quando un computer attende l'input del mouse o l'input da tastiera o qualcosa da una rete (ad es. File)).
Non fai altro che seguire queste istruzioni. Non sai mai perché, non sai mai per chi, ma lo fai e basta.
A volte, le tue istruzioni ti dicono di multitasking. Hai un mucchio di carte. Si imposta un timer e si lavora sulle istruzioni dalla carta in alto per 5 minuti. Quando il timer scade, metti quella carta sul fondo della pila e fai qualunque cosa sia sulla nuova carta in cima. (Ecco come i computer eseguono più di un programma alla volta).
Ora un giorno stai aspettando un pezzo di carta vicino alla finestra e sai quando lo ottieni, farai tutto ciò che dice, perché è quello che ti ha detto l'ultimo pezzo di istruzioni. Lo ottieni e dice di trovare alcuni dei tuoi pezzi di carta principali, con le tue istruzioni di base, e cancellarli. Ti dice nuove istruzioni da mettere lì. Stanno facendo cose strane, come inviare i tuoi file fuori dalla finestra in posti strani o raccogliere copie di backup di tutte le cose che arrivano dalla finestra. Ma l'importante è che non ci pensi nulla. Sono solo più istruzioni. Li fai e basta.
Questo è un virus. È solo una serie di istruzioni che inducono il computer a funzionare.
Ora, supponiamo che tu sia un lavoratore multitasking. Ricevi una di queste istruzioni di cancellazione nella finestra. Ma sei occupato, quindi lo metti sul fondo della pila. Guarda in cima alla tua pila di cose da fare e c'è una serie di istruzioni contrassegnate come "antivirus". Dice di leggere tutti i tuoi documenti e vedere se qualcuno di loro assomiglia al loro documento di esempio. Lo fai e vedi che le istruzioni per la cancellazione sono sul tuo elenco.
Nota che se inizi a eseguire le istruzioni del virus, non ci pensi nulla. Senza un antivirus, non esiste alcun attacco, non esiste una risposta immunitaria. Non ti sta attaccando, è solo un insieme di istruzioni. L'antivirus è solo un elenco di TODO che prevede di guardare le altre istruzioni e trovare quelle che corrispondono a un modello. Non sta cercando di preservare il sistema nel suo insieme, è solo un foglio di carta che qualcuno ti ha dato dalla finestra, perché impedisce ad altre persone di indurti a fare cose mettendo cose attraverso la finestra.
E i tuoi virus "in evoluzione"? Questo è certamente possibile, ma diamo un'occhiata a ciò che ciò comporta. Un virus in evoluzione è fondamentalmente un foglio di istruzioni che ti dice come fare più istruzioni. È un pezzo di carta che ti dice di cancellare un mucchio di tue vecchie istruzioni, e quindi di metterne di nuove al suo posto, ma quelle nuove istruzioni ti dicono anche di cancellare vecchie istruzioni, di metterne di nuove e così via. Quindi le istruzioni originali non stanno cambiando. Il virus non sta mutando. Invece, sta semplicemente facendo tutto ciò che fa, lasciando anche alle spalle le istruzioni per creare la sua prossima generazione.
Quindi, è possibile farlo? Sì. Ma è estremamente complicato. Avere un programma che cambia se stesso, ma avere quella sequenza di cambiamenti che non converge alla fine in un programma che non fa nulla di utile, è incredibilmente complesso.