Il DOS fornisce soltanto un modo per creare i moduli residenti (TSR): la funzione KEEP (INT 21h, AH=31h oppure INT 27h). La maggior parte dei virus residenti, per mascherare la loro diffusione, usano un altro metodo per diventare residenti: essi processano le aree di sistema che controllano l'allocazione della memoria (MCB), si riservano dello spazio libero in memoria, lo marcano come occupato e vi scrivono dentro la loro copia. Alcuni virus inseriscono la loro porzione residente in delle aree di memoria di sistema libere come parte della tavola dei vettori di interruzione, parte della DOS comunication area, l'area dei buffer di sistema, negli Upper Memory Block (UMB) e nella memoria XMS o EMS.
Vi sono solo due modi per un virus di tipo residente di controllare se è presente già in memoria una sua copia. Il primo è quello di introdurre una nuova function call per un certo interrupt, che quando viene chiamata dal virus restituisca un valore che segnali la presenza di una copia già attiva in memoria. Il secondo metodo consiste nello scandire la memoria alla ricerca di una copia del suo codice. Se non vi è già una copia del virus attiva in memoria, allora si ritaglia uno spazio di memoria in cui si annida ed intercetta le system call per effettuare la sua opera di diffusione e danneggiamento.
Gli interrupt intercettati variano da virus a virus, però quasi sempre viene intercetta la INT 21h ed in particolare vengono agganciate le system call seguenti:
Della INT 21h qualche volta vengono agganciate anche le function call di gestione delle directory e dischi 11h, 12h, 4Eh, 4Fh.