Wirus komputerowy to program komputerowy posiadający zdolność powielania się, tak jak prawdziwy wirus, stąd jego nazwa. Wirus do swojego działania potrzebuje i wykorzystuje system operacyjny, aplikacje oraz tożsamość użytkownika komputera. Wirusa komputerowego zalicza się do szkodliwego oprogramowania (malware). Do zwalczania wirusów komputerowych stosuje się programy antywirusowe i skanery wykrywające szkodliwe oprogramowanie (anti-malware scanners). W zabezpieczeniu się przed wirusami pomagają również stałe aktualizacje systemu i aplikacji.


Wirus komputerowy przenosi się poprzez pliki, co wymaga obecności systemu plików, albo przez bezpośredni zapis w wybranym sektorze bądź jednostce alokacji zewnętrznego nośnika danych np. dysku twardego, dyskietki lub pendrive’a. Proces replikacji wirusa komputerowego polega na odpowiedniej modyfikacji zawartości pliku, sektora lub jednostki alokacji. Tak zmodyfikowany nośnik danych nazywa się nosicielem wirusa komputerowego, analogicznie do prawdziwego nosiciela wirusa. Rozmiary pierwszych wirusów komputerowych zawierały się w granicach od kilkudziesięciu bajtów do kilku kilobajtów. Obecnie, takie klasyczne wirusy spotyka się rzadziej, częściej jest to połączenie wirusa z robakiem komputerowym o rozmiarze rzędu kilkadziesiąt kilobajtów. Taką, stosunkowo niewielką ilość kodu binarnego, z łatwością można ukryć w dużym pliku zawierającym program komputerowy, o rozmiarze rzędu kilku megabajtów. Sam rozmiar wirusa zależy od czynników takich jak:

*umiejętności programistyczne twórcy wirusa – wirus lepszego programisty napisany w tym samym języku będzie mniejszy lub będzie miał więcej funkcji,
*użyty język programowania – wirus o podobnej funkcjonalności napisany w języku maszynowym (asembler) zwykle będzie mniejszy niż w języku skryptowym czy języku wysokiego poziomu,
*przewidywana funkcjonalność wirusa – prosty wirus będzie mniejszy od szkodnika wykonującego wiele różnych czynności; najmniejsze wirusy potrafią tylko się powielać,
*wykorzystanie cech środowiska operacyjnego – wirus napisany jako maksymalnie niezależny musi mieć wbudowane wszystkie potrzebne biblioteki, wirus korzystający w pełni ze środowiska ma tylko minimum kodu niezbędne do wywołania dostępnych w tym środowisku funkcji.

Generatory wirusów Istnieje wiele programów umożliwiających stworzenie własnego wirusa, nawet bez znajomości systemu czy mechanizmów wykorzystywanych przez wirusy. Można je bez problemu znaleźć w Internecie. Korzystają one z gotowych modułów w asemblerze i umożliwiają stworzenie wirusa o zadanych parametrach wybieranych zwykle przy pomocy przyjaznego użytkownikowi menu. Można w nim określić zakres infekowanych obiektów oraz rodzaj efektów, które ma on wywoływać. Oprócz kodu wynikowego wirusa, generatory tworzą także źródła w asemblerze, co umożliwia zainteresowanemu pisaniem wirusów użytkownikowi dokształcenie się w tej dziedzinie.