![]() |
![]() |
|||||||
Souborové viry pro WindowsHlavní rozdíl mezi 32bitovými viry a dosovskými viry je ve struktuře hostitelských souborů, které je třeba napadnout. U com-souborů postačilo viru zapsat se na konec programu a na jeho začátek umístit skok na svoje tělo. Při infekci exe-souborů už bylo zapotřebí modifikovat adresu vstupního bodu programu, adresu zásobníku a několik proměnných určujících velikost souboru. Také bylo nutné pohlídat si exe-soubory obsahující překryvné moduly apod. K pochopení náročnosti infekce 32bitových exe-souborů je třeba se nejprve stručně seznámit s jejich stavbou. V operačních systémech Windows 9x a Windows NT/2000 se používá 32bitový formát spustitelných souborů, známý jako pe-format. (Jeho název je zkratkou od portable executable - tedy přenositelný formát). Je navržen tak, aby byl bez problémů přenositelný mezi různými platformami počítačových systémů s různými typy procesorů. Pe-soubor, stejně jako 16bitový ne-formát používaný ve Windows 3.x, začíná starou známou dosovskou exe-hlavičkou a krátkým programem nazvaným STUB, který vás upozorní, že program musíte spustit pod operačním systémem Windows. Po této sekci následuje pe-hlavička a pole tzv. SECTION HEADERS, tedy pole hlaviček jednotlivých sekcí (oddílů) souboru. Následují jednotlivé sekce, které obsahují kód, neinicializovaná data, inicializovaná data, relokační tabulku apod. Délka sekcí je zarovnána na násobek 512 bajtů. S ohledem na tuto strukturu pe-souborů se nabízí několik způsobů jejich možné infekce.
PřepsáníVirus sice takto PE EXE soubor napadne, ale jeho původní obsah znehodnotí, podobně jako přepisující viry pro DOS.
Cavity virus ("Mezerový" virus)
Technika, při které se virus "rozleje" do nevyužitých míst (a těch je hodně) PE souboru.
EPO technika (Entrypoint Obscuring)Některé nové viry využívají techniku EPO. Jde o to, že virus nemodifikuje entry-point, ani na začátek kódu nevkládá nějakou instrukci skoku (JMP), ale snaží se "zašít" někam nakonec. Virus se postará například o to, aby byl spuštěn až po zavolání určité API funkce původním programem. Pokud si virus zajistí, aby byl spuštěn při volání funkce ExitProcess API, může si být jistý, že se bude aktivovat až na konci celého "mechanismu". Idea EPO techniky je jasná: znesnadnit antivirům detekci. Emulátor kódu totiž většinou testuje pouze začátek programu (první instrukce) a na analýzu má vyčleněnou velice krátkou dobu. Není tedy pravděpodobné, že by se dopracovala až k volání služby ExitProcess a virus tak objevila. |
||||||||
![]() |
![]() |