Vektory přerušení

V textech, které se zabývají virovou a antivirovou problematikou, se mnohdy setkáte s termínem Vektor přerušení nebo Obsluha přerušení. Jak jsme si řekli, v paměti ROM je uložen základní program BIOS. Ten obsahuje řadu funkcí vykonávajících konkrétní úkol (operace s diskem, operace s pamětí apod.) V paměti RAM je uložena tabulka, ve které jsou odkazy na jednotlivé funkce BIOSu – zde jsou uloženy adresy, na kterých ta která funkce BIOSu v paměti ROM začíná.

Pokud některý program potřebuje využít některé funkce BIOSu, zjistí si v tabulce startovní adresu dané funkce, poté přeskočí na zjištěnou adresu do paměti ROM a požadovaná funkce se poté vykoná.

Počítačové viry potřebují v zájmu svého dalšího šíření převzít kontrolu nad některou částí systému. Je pro ně ideální umístit se do operační paměti a převzít kontrolu některého přerušení BIOSu.

Postačí do paměti RAM nainstalovat vlastní funkci a v tabulce přerušení změnit některé údaje (virus si zapamatuje, na které adrese leží původní funkce). Pokud poté některý program vyžaduje tuto funkci, z tabulky přerušení se dozví adresu funkce, která toto přerušení obsluhuje, a spustí program, který se na této adrese nachází. To je v našem případě virový kód. Zde se vykoná vše, co virus potřebuje ke svému šíření, a poté se spustí původní program, obsluhující danou funkci.

Z pohledu uživatele je vše v pořádku – netuší, že mezi jeho požadavkem a jeho vykonáním se provedly ještě jiné instrukce.

Výše uvedený způsob umístění v paměti a převzetí kontroly nad tabulkou přerušení využívají rezidentní viry. Navíc skutečnost, že obsluha některé systémové funkce neleží v paměti ROM, ale je instalována v paměti RAM, nelze označit za podezřelou. Kromě virů využívají práce s tabulkou přerušení snad všechny pomocné systémové programy.