Należy zachować ostrożność, używając wyniku teoretycznego do argumentowania, że czegoś nie można zrobić w praktyce. Istnieje kilka niebezpieczeństw, w które można wpaść:
wynik teoretyczny ma założenia, które nie mają zastosowania,
problem w praktyce nie jest dobrze modelowany przez model teoretyczny,
w praktyce rozwiązanie nie musi być idealne, aby było przydatne.
Nie podałeś formalnej definicji wirusa, więc rozwinięcie twojego twierdzenia o trywialnym ćwiczeniu może pomóc w zrozumieniu, co naprawdę masz na myśli.
Duża część tego, co robi oprogramowanie antywirusowe, polega na wykrywaniu znanych wirusów (i ich wariantów), a odbywa się to poprzez porównywanie ciągów (w plikach, pamięci itp.) Ze skończoną listą ciągów (sygnatur wirusów). Dlatego musimy regularnie aktualizować bazę danych oprogramowania antywirusowego.
Istnieją dodatkowe możliwości wykrywania potencjalnych wirusów w oparciu o ich „zachowanie”, ale metody te nie są ani kompletne, ani dźwiękowe (i aby były przydatne, nie muszą być pełne / kompletne). Wydaje się, że projektowanie oprogramowania antywirusowego w większym stopniu dotyczy inżynierii komputerowej niż informatyki (choć informatyka i inżynieria komputerowa są ze sobą ściśle powiązane).
Ogólnie rzecz biorąc, badania te objęłyby bardziej stosowaną część bezpieczeństwa komputerowego (i bardziej ogólnie obszary systemowe: sieci komputerowe, systemy operacyjne itp.) Informatyki, ale wykorzystanie pomysłów z innych części informatyki (uczenie maszynowe itp.) Jest typowy.
Możesz sprawdzić The Art of Computer Virus Research and Defense .