Esta es una pregunta muy amplia. Como no ha hablado realmente sobre el tipo de cifrado, ya sea basado en archivos o en memoria, etc.
Respuesta corta:
No, el solo hecho de que utilice el cifrado no significa que sea indetectable.
Respuesta larga:
Sin embargo, es probable que no sea detectable hasta que el proveedor de AV invierta manualmente a los ingenieros y genere algún tipo de firma para detectar (firmas de bytes, sumas de comprobación, etc.)
Hablemos de tu autocifrado. Esto se puede hacer de muchas maneras.
Voy a adivinar que estás hablando de cifrado de archivos.
Entonces, Virus.exe se cifra a sí mismo, lo cual es altamente complejo, ya que tendrá que cifrar todas las secciones (.text, .data, etc.) y cambiar OEP (Punto de entrada original) a una rutina de autocifrado. Todo el archivo ha cambiado la suma de comprobación pero no cambiará más.
Incluso podría ir más avanzado y cifrar cada ejecución (código polimórfico) que se encripta, pero la rutina de autodescifrado que ahora estará en el EP (punto de entrada) se puede usar como firma de byte para detectar el malware como debe hacerlo. Sé estático independientemente de la clave que utilices para descifrarlo. De lo contrario, ¿cómo sabría descifrarlo?
Incluso podrías profundizar en diferentes formas de código polimórfico, código metamórfico, código confuso, etc., pero no sé qué es exactamente lo que estás pidiendo. De cualquier manera, independientemente del método que utilice para cifrar cualquier forma de sí mismo, las firmas de los proveedores de AV harán una ingeniería inversa manual y finalmente la detectarán. La pregunta es cuánto tiempo no se detectará el malware salvaje antes de enviarlo a un proveedor de AV para obtener ingeniería inversa y cuánto tiempo le tomará al equipo de ingeniería inversa encontrar firmas estáticas que puedan usar para identificar el malware.
Si esto no responde tu pregunta, deja un comentario o actualiza tu pregunta con el tipo de cifrado real del que estás hablando y actualizaré mi respuesta.