Sleep obfuscation
Cifrare il proprio codice in memoria mentre si è inattivi e decifrarlo un attimo prima di risvegliarsi. Pensata contro gli scanner che ispezionano la memoria dei processi a intervalli regolari.
Un impianto fa pochissimo: dorme per minuti, preleva istruzioni, dorme di nuovo. In quel tempo resta in memoria in chiaro, con permessi di lettura ed esecuzione, che è esattamente ciò che cerca una scansione periodica della memoria con regole a firma. La tecnica ribalta la situazione: invece di dormire con una funzione ordinaria, cede il controllo a una piccola catena (storicamente tramite timer queue nella variante Ekko o tramite asynchronous procedure call in Foliage) che porta la protezione della memoria in scrittura, cifra la regione, attende e poi ripete tutto al contrario. Per quasi tutto il periodo dormiente non c'è nulla di leggibile da trovare. Il costo sono tracce altrove: un thread in attesa con uno stack non attribuibile ad alcun modulo e regioni di memoria che cambiano protezione secondo uno schema ricorrente sono già di per sé abbastanza insoliti da generare un allarme.