Un antivirus e' un programma molto complesso.
La parte fondamentale, ovviamente scritta in C, e' quella che dovrebbe controllare "in real time" la presenza di un file infetto.
Per farlo, in genere, si scrive un "driver" che intercetta le operazioni effettuate sul file system (un File System Filter Driver) che lavora a stretto contatto con il kernel in ring 0.
Gia' questa parte, presupporrebbe una elevata conoscenza del Sistema Operativo e delle API di basso livello e una grande esperienza nella programmazione C/C++.
Per non parlare del resto (rilevazione del pattern ...).