Zjištění přítomnosti viru v souboru
Podobně jako v případě vícenásobné instalaci v paměti potřebuje virus vyřešit stejný problém
i při infikaci souboru. K odstranění možnosti vícenásobného zavirování programu stejným virem
využívající viry pro rozhodnutí, zda daný soubor již je či není jeho tělem infikován, některou
z následujících možností:
Identifikační řetezec
Tradiční podpisová metoda. Virus ve svém těle obsahuje na definovaném místě definovaný řetezec znaků, který
slouží k detekci jeho přítomnosti. Jak již bylo výše uvedeno v souvislosti s detekcí virů, např. virus Pojer pro
svoji identifikaci používá řetězec "XmY?!&" uložený 12 bajtů před koncem souboru.
Konkrétní nebo nesmyslný čas souboru
Metoda využívající zejména možnosti nastavení času souboru na nesmyslný údaj. Virus Vienna nastavuje položku sekund
času na hodnotu 62.
Existují i různé odvozeniny využívající konkrétní čas souboru. Příkladem je virus Datacrime, který poslední
tři bity údaje sekund času nastavuje na stejnou hodnotu podle posledních tří bitů minut.
Nesmyslné datum souboru
Jde o nastavení data mimo logický rozsah. Virus Tremor nastavuje rok souboru zvětšený o 100.
Kombinace data a času souboru
Komplikovanější způsob indikace přítomnosti viru, který se snaží zamezit nahodilým shodám. Např. virus OneHalf
mění datum a čas souboru podle vzorce (datum mod 1eh)=(čas and 1fh).
Nevýhodou všech indikací pomocí data a času souboru je jejich nefunkčnost v případě vícenásobného zavirování
programu několika různými viry, využívajícími tuto techniku. Tento problém má však daleko obecnější
podstatu (viz. obr. 37). Málokdy dokáže virus A odolat programu, který byl později zavirován virem B. Viry totiž
nevyhledávají své identifikační řetězce v celém těle programu, ale na přesně definovaném místě, což v uvedeném
případě znamená, že aktivní virus A bude hledat svůj identifikační řetězec v těle viru B; tam jej nenalezne a opětovně
zaviruje program svým tělem.
Od problému vícenásobného zavirování jsou oproštěny souborové viry přepisující i duplicitní (doprovodné). Přepisující
viry přepisují tělo infikovaného programu a viry duplicitní vytváří naprosto oddělený soubor. Obojí neprodlužuje délku infikovaného
programu, a proto zde vícenásobné zavirování nehrozí.
Délka souboru
Netradiční způsob indikace přítomnosti viru. Virus Anthrax zarovnává velikost souboru na hodnotu dělitelnou 16.
Pochopitelně, že řada souborů, jejichž nezavirovaná velikost splňuje uvedenou podmínku, nebude virem Anthrax nikdy napadena.
Identifikační instrukce
Zajímavá možnost využívající přepisu první instrukce či několika prvních instrukcí na instrukce identifikační, tj.
na instrukce jejichž výskyt je v úvodu programu nepravděpodobný a který charakterizuje přítomnost viru.
Může jít např. o sled nop (90h) instrukcí, či jako v případě viru Seventh Son o instrukci dec BP (4dh). Každopádně
vždy se jedná o instrukce nevýznamné pro vlastní běh programu.
Příznaky v hlavičce EXE souborů
Některé infektory EXE souborů používají rozličné variace příznaků vybraných položek EXE hlavičky (headeru):
Test položky kontrolního součtu na konkrétní hodnotu (virus SysLock testuje na hodnout 7cb6h).
Nestandardní signatura EXE souboru (virus Fingers ukládá místo systémové hodnoty 'MZ' hodnotu 'TM').
Definovaná počáteční hodnota registru IP (virus Peach testuje IP na hodnotu 01fch).
Kombinovaný příznak (pro virus Invol je příznakem infikace splnění podmínky SS - SP = 5ch; virus Loren testuje,
zda pro hodnotu kontrolního součtu platí: ChkSum = CS + IP + 01b3h).
Virus Mabuhay testuje, zda vstupní bod programu obsahuje stejný kód jako tělo viru.
Všechny uvedené metody jsou pouze příklady virových mechanismů, ne návod k identifikaci přítomnosti virů.
V případě, že virus je aktivní v paměti, uživatel nemusí, vzhledem k možné stealth povaze viru, výše uvedené symptomy zjistit.

|