Non è sufficiente, gli antivirus effettuano una analisi comportamentale sul codice in runtime.Bisogna usare un buon crypter. Se vuoi che nessun antivirus venga rilevato bisogna avere un FUD Crytpter.
Se un frammento di codice è considerato malevolo il malware verrà rilevato comunque, al massimo con un crypter fai qualche punteggio in meno su virustotal. L'unico modo è scrivere il malware e analizzarlo mano a mano che si aggiungono funzioni. Se una funzione lo rende rilevabile va riscritta in modo diverso o bisogna farne a meno.
Ad esempio che metti una chiamata a ProcessKill in un iterazione, o se una FileDelete senza scelta dell'utente è probabile che l'analisi comportamentale faccia il suo lavoro.
Se il malware invece utilizza una struttura simile ad altri malware rischia il rilevamento per analisi euristica.
Metodi efficaci sono l'inserimento di istruzioni di selezione morte, ad esempio la verifica dell'esistenza di un file che mai verrà creato con all'interno codice non malevolo.
Altra soluzione è dividere il malware in eseguibili diverse o dll, per evitare policy di sicurezza sui file scaricati può essere utile far compilare al malware porzioni di codice una volta avviato in locale usando software presenti già sul pc, come il compilatore .net su windows.
Cercare di delegare operazioni rilevabili a software esterni, ad esempio far scaricare un file al browser piuttosto che chiamare l'api di windows FileDownload oppure far eliminare file a CCleaner piuttosto che farlo direttamente tramite il malware.
Anche i crypter che decriptano il codice in runtime non sono esenti a questi controlli, l'unica soluzione è scrivere malware correttamente.