(Questa è una descrizione non tecnica dell'intero processo.) Sentitevi liberi di commentare e chiedere)
Il meccanismo in pratica è lo stesso in tutti i sistemi e ha molto a che fare con il fatto che queste cose sono chiamate virus invece di, batteri .
Un virus non è "vivo" in quanto manca di un meccanismo essenziale. Quello che fa è dirottare il meccanismo di un'entità più complessa come una cella, e fargli fare le sue offerte - il virus potrebbe essere nient'altro che un meccanismo di dirottamento con la lista di "offerte" come payload .
Un virus informatico è molto simile a questa semplice struttura.
Come funziona il dirottamento?
Un sistema informatico deve avere una sequenza di avvio - prima fai questo, poi lo fai, ulteriori istruzioni sono qui , quindi ... - e un < em> sequenza di azioni (utilizzata per avviare i programmi).
Ad esempio, quando si tenta di eseguire un file eseguibile, il sistema apre il file, rileva ciò di cui ha bisogno (e si lamenta se non è in grado di soddisfare tali esigenze - ad esempio "biblioteca mancante"), scopre come posizionare tutti i componenti contenuti nel file .exe
in memoria, determina dove farlo, aggiorna i componenti con informazioni reciproche in modo che possano comunicare, decomprima i componenti e li colloca nelle posizioni preparate in memoria, e alla fine rilascia un misura del controllo sul componente marcato "prima".
Il virus dirotta questo processo di (due esempi):
- individuare l'elenco dei luoghi in cui verrà attivato il codice eseguibile
(MBR, settore di avvio, caricatore del sistema operativo, stub del sistema operativo, script di autoesecuzione, processi di avvio, ...)
-
Inietti stesso in questa lista, in modo che il sistema abbia ancora una cosa da fare quando inizia, e quella cosa sta dando vita alla crisalide virale. Questo può essere fatto modificando l'elenco di cose da fare del sistema operativo o posizionandosi in un posto conveniente come la cartella
auto-run
o il ramo Run registry
in Windows. Tutto ciò che viene posizionato verrà eseguito all'avvio.
-
o può sostituire uno dei componenti, salvandolo da qualche altra parte. Quando il sistema attiva il componente credendo che sia legit, il virus fa la sua cosa, quindi recupera anche il componente ibernato e lo attiva come se fosse il sistema. Quindi, in effetti, la sequenza è di nuovo un passo più lungo, ma "ufficialmente", dall'esterno, il numero di passaggi è invariato.
Il virus può anche scrivere se stesso all'interno delle routine di diagnostica del sistema operativo in modo che non riportino nulla fuori dall'ordinario. Questo processo può essere eseguito molto vicino all'hardware , in modo che l'infezione sia molto difficile da rilevare.
Per infettare i file eseguibili il virus fa lo stesso in un modo leggermente diverso. Può modificare il "manifest" interno del file in modo che il sistema esegua effettivamente il virus. Il virus estrae quindi dal suo "corpo" gonfiato la carcassa del processo originale e lo attiva a sua volta. L'utente vedrà il processo desiderato in esecuzione e non noterà il leggero ritardo nell'attivazione.
La disinfezione richiede la conoscenza del virus in modo che il file originale possa essere estratto dall'oggetto infetto e utilizzato per sostituirlo del tutto.
Esistono modi di nascondersi più sofisticati: molti file eseguibili hanno aree interne che sono per lo più zeri, usate come memoria temporanea di un tipo o dell'altro. Il virus si nasconde lì e fa solo una leggera modifica al file in modo che il "primo componente" da attivare non sia quello originale, ma l'area vuota in cui risiede il virus. Essendo "dentro" il file, la dimensione del file è ora invariata. Il virus, dopo aver ricevuto il controllo, si sposterà in un altro posto, azzerando nuovamente l'area (nella memoria) in cui si nascondeva, e passerà il controllo al vecchio "primo componente", che non noterà nulla di male.