Il recupero dei settori che contengono il system loader (vedi figura 8) è il
più delle volte una procedura abbastanza semplice. Questo lavoro può essere fatto sia
dalle ``Norton Utilities'' sia dai comandi del DOS sys e
fdisk. Se il computer è stato infettato da un virus che utilizza un algoritmo
complesso il problema
principale è quello di cercare l'indirizzo del settore che contiene il
settore originale salvato dal virus. Poi questo settore viene letto dal disco e
riscritto nel settore di sistema. Alcuni boot viruses non salvano il
settore originale, ed in questo caso c'è bisogno di ripristinare il settore
originale utilizzando un settore campione. A tale scopo può essere
usato il DOS boot-sector standard o l'MBR classico.
Figura 8: Riparazione boot sector a)
Quando si ripristinano zone di sistema è necessario fare molta attenzione perché una correzione errata in tale area potrebbe portare alla perdita di tutte le informazioni sul disco (o i dischi). Tutto ciò perché le operazioni di lettura scrittura del boot-sector originale devono essere correttamente controllate. La più semplice verifica è quella di controllare la presenza della word AA55 alla fine del settore.
Prima di ripristinare il settore di sistema c'è bisogno di definire l'area sul disco (indirizzo del settore) dove si trova salvato il settore originale. L'indirizzo di tale area può essere o in formato (vedi tabella 2) logico (numero del settore del disco logico, gestito dal DOS) o in formato assoluto (numero del cilindro, testina, e settore del disco fisico, gestito dal BIOS).
Formato | Via servizio |
Logico | INT25h / INT 26h (DOS) |
Assoluto | INT 13h (BIOS) |
Il valore dell'indirizzo è calcolato in modo diverso a seconda del metodo usato dal virus per conservarsi il settore originale.
Questo metodo è usato quando il virus salva il contenuto del settore originale in una posizione fissa del disco (ad esempio: cilindro 0, testina 0, settore 3).
L'indirizzo del settore originale è caricato dal corpo del virus, cioè il codice del virus contiene il cilindro, la testina, ed il settore della posizione del system loader originale (vedi figura 9).
Figura 9: Riparazione boot sector b)
In alcuni casi questi indirizzi non puntano al loader originale ma al primo settore del corpo del virus. In questi casi è necessario aggiungere un certo valore (offset) all'indirizzo del settore originale (vedi figura 10). Questo valore dipende dalla lunghezza del virus e dal suo algoritmo.
Come per il metodo ABSOLUTE, l'indirizzo del settore che contiene il boot o l'MBR originale viene caricato dal corpo del virus. In questo caso l'accesso al settore in questione viene effettuato tramite la INT 25h.
Ci sono virus che non salvano il settore originale poiché sono più piccoli del codice di boot contenuto nel settore. In questo caso viene riscritto il system loader standard sull'area di sistema infettata. Questo metodo può danneggiare i contenuti del drive se il drive è stato formattato in qualche modo non standard.
In casi speciali (per esempio quando il virus è cifrato o è prodotto da tecnologie polimorfiche) può essere difficile il ripristino del settore. In questi casi l'eventuale ripristino dipende solo da una totale conoscenza del codice del virus o dalla possibilità di stabilire, analizzando la macchina, le caratteristiche dei dischi logici e/o fisici.