Polimorfico / metamorfico di solito è scritto almeno in parte in un linguaggio di basso livello.
Lo scopo del malware polimorfico è quello di eludere gli scanner dei virus. Lo fa rendendo difficile identificare una firma per il file. La versione più semplice, ovviamente, è un caricatore che decrittografa una sezione di codice quando è il momento di girare. Tuttavia, questo ha una limitazione: il loader è ora una firma facile da individuare!
La soluzione è scrivere il caricatore in modo polimorfico. Questa è una specie di pollo e il problema dell'uovo. Tuttavia, sappiamo che l'applicazione viene compilata EVENTUALMENTE in base al codice macchina, quindi gli sviluppatori di codice polimorfici scriveranno codice macchina che può essere mixato e mutato e comunque funzionante.
Questo lavoro di basso livello è molto difficile da fare in qualsiasi lingua sopra l'assembly, perché più alto è il livello, più una firma che lascerai indietro (i linguaggi di alto livello non sono mai stati scritti per evitare di lasciare le firme).
Tuttavia, ciò non significa che l'intero malware debba essere di basso livello. Una volta creato un malware poomorfo che sappia decodificare e crittografare il codice, diventa possibile scrivere il resto del virus in un linguaggio di alto livello e collegarlo semplicemente al caricatore polimorfico di basso livello / crittografia / decodifica.
(E, naturalmente, questa battaglia continuerà se lo scanner antivirus guarda in memoria dopo la decrittografia, ma penso che la semplice gestione di questo "scanner del file per le firme" sia l'approccio di Virus Scanner che dovrebbe portarti avanti!)