Вы должны быть осторожны при использовании теоретического результата, чтобы утверждать, что что-то не может быть сделано на практике. Есть несколько опасностей, в которые можно попасть:
теоретический результат имеет предположения, которые не применяются,
проблема на практике не смоделирована теоретической моделью,
на практике решение не обязательно должно быть идеальным, чтобы быть полезным.
Вы не дали формального определения того, что такое вирус, поэтому расширение вашего заявления об этом тривиальном упражнении может помочь понять, что вы на самом деле имеете в виду.
Большая часть того, что делает антивирусное программное обеспечение, это обнаружение известных вирусов (и их вариантов), и это делается путем сравнения строк (в файлах, памяти и т. Д.) С конечным списком строк (сигнатуры вирусов). Поэтому нам необходимо регулярно обновлять базу антивирусных программ.
Существуют дополнительные возможности по обнаружению потенциальных вирусов на основе их «поведения», но эти методы не являются ни полными, ни здоровыми (и они не должны быть здоровыми / полными, чтобы быть полезными). Проектирование антивирусного программного обеспечения, похоже, в настоящее время в большей степени относится к компьютерной инженерии, чем к компьютерной науке (хотя компьютерная наука и компьютерная инженерия тесно связаны).
Как правило, эти исследования относятся к более прикладной части компьютерной безопасности (и в более общем смысле к системным областям: компьютерные сети, операционные системы и т. Д.) Информатики, но использование идей из других частей информатики (машинное обучение и т. Д.) типичный.
Вы можете проверить Искусство исследования компьютерных вирусов и защиты .