La compilazione C# a runtime è il processo di compilare codice C# mentre un programma è già in esecuzione, anziché compilarlo in anticipo in un eseguibile normale. Gli aggressori la usano per generare codice ausiliario al volo, adattare il comportamento all'host o caricare funzionalità solo quando necessario. Poiché il sorgente C# o il codice intermedio possono esistere solo brevemente in memoria, possono lasciare meno artefatti evidenti su disco rispetto a un binario tradizionale rilasciato sul sistema.
Nella sicurezza informatica, questo è importante perché può aiutare il malware a confondersi con l'automazione legittima e rendere meno efficace il rilevamento basato sui file. Si osserva spesso in loader, backdoor e strumenti di post-exploitation che vogliono mantenere flessibile il proprio payload. I difensori cercano un uso insolito delle API di compilazione .NET, processi script o PowerShell sospetti che invocano la compilazione C#, e generazione di codice residente in memoria. Quando la compilazione a runtime compare insieme a persistenza o esecuzione di comandi, può indicare un tentativo deliberato di nascondere logiche malevole dietro attività normali di Windows e .NET.


