Sposób działania programu antywirusowego zależy do rodzaju antywirusa (A może bardziej od miejsca zastosowania).
Klasyczny antywirus jest programem do którego przekazujesz pliki do przeskanowania w poszukiwaniu zagrożeń.
Antywirusy skierowane do ochrony stacji roboczych (komputerów osobistych) posiadają dodatkowo specjalny sterownik (moduł do jądra systemu), który monitoruje i kontroluje uruchamianie programów. Taki sterownik może wstrzymać uruchomienie programu do momentu uzyskania odpowiedzi od antywirusa. Sterownik ma dostęp do wszystkich wywołań systemowych, źle napisany może mieć tragiczny wpływ na wydajność systemu.
Do wykrywania zagrożeń antywirusy używają bazy sygnatur. Klasyczna sygnatura jest wyrażeniem regularnym wyszukującym cechy specyficzne dla wirusa. Takie sygnatury są bardzo potężne, pozwalają wykrywać wirusy nawet po modyfikacjach, ale mogą zgłaszać wyniki fałszywie pozytywne (jeżeli sygnatura będzie zbyt agresywna). Innym rodzajem sygnatury (ostatnio bardzo popularnym) są sygnatury hashowe. Zawierają odcisk pliku policzony przy pomocy funkcji hashującej (np md5, sha1, sha256). Takie sygnatury raczej nie generują wyników fałszywie pozytywnych (ze względu na właściwości funkcji hashującyh). Jednak są bardzo łatwe do ominięcia. Wystarczy zmodyfikować jeden bajt pliku lub dopisać dodatkowy bajt.
Jeżeli chcesz napisać prosty skaner antywirusowy w celach edukacyjnych możesz użyć dowolnego języka pozwalającego na czytanie plików. Antywirus dający ochronę w czasie rzeczywistym (używający sterownika) musi być napisany w języku dającym jak największą wydajność (np. C lub C++).