Charakteristické okamžiky infekce virem
Okamžik, kdy virus napadne spustitelný soubor, je závislý na povaze virů. Existují dvě
základní koncepce:
Rychlá infikace
Za rychlý infektor je pokládán virus, který napadá nejenom všechny spouštěné, vytvářené či
modifikované porgramy, ale i programy pouze otevírané (např. při antivirové kontrole). Nejrychlejší
infektory napadají soubory již při zachycení volání funkcí DOSu "Najdi první soubor" a "Najdi další soubor".
Pomalá infikace
Pomalým infektorem je virus, který většinou napadá pouze programy nově vytvářené nebo modifikované.
Principem je, že virus se "sveze" s legálním požadavkem na zápis, v rámci něhož provede svoji replikaci.
Tím odpadá virům řada problémů, nemusí např. ani obsluhovat kritickou chybu DOSu. V operačním systému MS-DOS
navíc existují samo-modifikující se programy, které se mohou stát ideálním terčem pomalé a velice nenápadné
infikace (např. program SETVER.EXE pro zajištění kompatibility programů mezi různými verzemi operačního systému).
Občasná infikace
Občasná infikace je variantní formou pomalé infikace. Podstatou je splnění určité logické
podmínky, např. infikace každého dvacátého spouštěného programu, infikace pouze v určité hodiny,
infikace programů splňujících definovaný rozsah délky apod. Podle pojetí konkrétní podmínky mohou
být občasné infektory rychlostí svého rozšíření buď rychlejší nebo pomalejší než infektory pomalé.
Rozdíl v pojetí je zřejmý. Rychlý infektor způsobuje nejrychlejší možné rozšíření viru v operačním systému
a dostupném okolí, což však nutně vede k jeho brzkému odhalení. Pomalý infektor se snaží v rozumné
míře najít kompromis mezi rychlostí rozšíření a dobou odhalení. Velice pomalý občasný infektor je nejnenápadnější,
a tedy nejnebezpečnější variantou počítačového viru.
Okamžiky infikace souborovým virem se de-facto odvíjejí od potřeby viru znát jméno programu pro jeho napadnutí:
Klidový stav
Okamžik infikace charakteristický pro nerezidentní viry. Napadený program je vybrán použitím služeb volání DOSu 4eh -
"Najdi první soubor" resp. 4fh - "Najdi další soubor". Při volání těchto služeb virus definuje masku souborů,
které chce infikovat. Nejčastěji se pochopitelně jedná o masky "*.COM" a "*.EXE", specifikující hlavní varianty spustitelných
souborů.
Zajímavý je pro některé viry i výše uvedený okamžik volání služeb 11h - "Najdi první soubor přes FCB" a 12h - "Najdi další
soubor přes FCB". Jedná se o starší služby volání DOSu, které používá např. příkazový interpret COMMAND.COM při
interpretaci příkazu dir. Vzhledem k častému použití příkazu dir je tento mechanismus užíván velice rychlými infektory.
Představitelem je např. virus Little Red.
Je potřeba si uvědomit, že uvedený popis je pouze popisem infikace programu virem, který je již aktivní v paměti.
Jedná se tedy o replikaci viru; v žádném případě se nejedná o možnost aktivace viru použitím příkazu dir na adresář,
ve kterém se eventuálně zavirovaný program nachází. Tato nereálná možnost bývá častým mýtem i v souvislosti
s bootovacími viry, kdy se nezasvěcení lidé mylně domnívají, že bootovací virus může napadnout počítač již v okamžiku
přepnutí na zavirovanou disketu.
Spuštění programu
Typický okamžik infikace většiny souborových virů. Rezidentní virus hlídá volání DOSu službou 4bh - "EXEC - Proveď nebo nahrej program",
kdy přímo získá jméno spouštěného programu pro zavirování.
Otevření či vytvoření programu
Obdobná situace jako v případě spuštění programu s jediným rozdílem, že v tomto případě virus monitoruje službu 3dh -
"Otevři soubor". Jelikož u této služby virus neví, jaký soubor je otevírán, musí nejprve otestovat, zdali jméno otevíraného souboru
obsahuje spustitelnou příponu. Synonymní je v podstatě i služba 3ch - "Vytvoř soubor".
Ukončení programu
Okrajová možnost infikace zejména COM programů prostřednictvím přerušení int 20h.
Při vyvolání tohoto přerušení platí pro COM soubory, že segmentová hodnota CS=PSP (Program Segment Prefix).
Tím má virus možnost zjistit adresu segmentu datové oblasti prostředí DOSu (DOS Environment) a odtud jméno ukončovaného programu.
Přístup na disketu nechráněnou proti zápisu
Okamžik infikace výhradně bootovacích virů. Virus obsluhuje přerušení diskových vstupních / výstupních operací (int 13h) a
kontroluje požadavky na práci s disketou. Pro vyloučení možnosti případného prozrazení testují bootovací viry, zda ještě běží
motor disketové jednotky. Pokud již motor neběží, virus se dále nesnaží o zavirování vložené diskety, neboť
pak by se musel motor znovu rozběhnout, což by mohlo být uživateli, vzhledem k indikaci LED diodou, nápadné.
Následuje ukázka vybraná z viru Aragon. Údaj na adrese 0000:043f poskytuje informaci, které motory
diskových jednotek jsou v běhu. Nultý bit reprezentuje mechaniku A:, první bit mechaniku B: atd.
xor ax, ax ; vynulovani registru AX
mov ds, ax ; DS=0, systemovy datovy segment
test byte ptr ds:[43fh], 01 ; bezi motor mechaniky A: ?
jz nebezi ; pokus o infikaci nebude