Debe tener cuidado al usar el resultado teórico para argumentar que algo no se puede hacer en la práctica. Hay varios peligros en los que uno puede caer:
el resultado teórico tiene suposiciones que no se aplican
el problema en la práctica no está bien modelado por el modelo teórico,
en la práctica, una solución no necesita ser perfecta para ser útil.
No ha dado una definición formal de lo que es un virus, por lo que ampliar su reclamo sobre el ejercicio trivial puede ser útil para comprender lo que realmente quiere decir.
Una gran parte de lo que hace un software antivirus es detectar virus conocidos (y sus variantes), y esto se hace comparando cadenas (en archivos, memoria, etc.) con una lista finita de cadenas (firmas de virus). Es por eso que necesitamos actualizar la base de datos del software antivirus regularmente.
Existen capacidades adicionales para detectar virus potenciales en función de su "comportamiento", pero estos métodos no son completos ni sólidos (y no necesitan ser sólidos / completos para ser útiles). El diseño de un software antivirus parece caer más en la ingeniería informática que en la informática hasta ahora (aunque la informática y la ingeniería informática están estrechamente relacionadas).
En general, estos estudios se incluirían en una parte más aplicada de la seguridad informática (y más generalmente en las áreas del sistema: redes informáticas, sistemas operativos, etc.) de la informática, pero utilizar ideas de otras partes de la informática (aprendizaje automático, etc.) es típico.
Es posible que desee consultar El arte de la investigación y defensa de virus informáticos .