Win32 viry

Nezavirovan² PE EXE soubor:
Viry Win32 mohou PE EXE soubory (tj. soubory urΦenΘ pro operaΦnφ systΘm Windows 9x/NT) napadnout n∞kolika zp∙soby:

P°epsßnφ

Virus sice tak PE EXE soubor napadne, ale jeho p∙vodnφ obsah znehodnotφ, podobn∞ jako p°episujφcφ viry pro DOS.

P°idßnφ novΘ sekce

PE EXE soubor je rozd∞len na sekce. Velikost sekcφ je ulo₧ena v (p°esn∞ji za) PE headeru a viry ji m∙₧ou m∞nit (a taky to d∞lajφ, p°evß₧n∞ s poslednφ sekcφ). JedinΘ omezenφ je, ₧e velikost sekcφ se zarovnßvß na nßsobek n∞jakΘ hodnoty (taky zapsanΘ v headeru), typicky na nßsobek 512. Virus m∙₧e vytvo°it v PE souboru novou sekci, ulo₧it do nφ svoje t∞lo a upravit hlaviΦku (header) PE souboru tak, aby se zavedl d°φve ne₧ p∙vodnφ program (ten se dostane na °adu a₧ po zavedenφ viru).

P°ipojenφ k poslednφ sekci

  • S modifikacφ PE hlaviΦky

    Virus se p°ipojφ do sekce s p∙vodnφm programem a modifikuje vstupnφ bod (entry point) v PE hlaviΦce tak, aby byl zaveden d°φve ne₧ p∙vodnφ program (ten se dostane k °φzenφ op∞t a₧ po provedenφ viru).

  • Vlo₧enφm JMP instrukce do k≤du p∙vodnφho programu

    Virus nemusφ modifikovat entry point, proto₧e do k≤du p∙vodnφho programu vlo₧φ instrukci skoku (JMP), kterß se postarß o zavedenφ viru (ten pak p°edß °φzenφ p∙vodnφmu programu).
  • Cavity virus ("Mezerov²" virus)

    Technika, p°i kterΘ se virus "rozleje" do nevyu₧it²ch mφst (a t∞ch je hodn∞) PE souboru.
    Napaden² soubor mß pak stejnou velikost jako p∙vodnφ originßl.
    Typick²m p°φkladem viru z tΘto kategorie m∙₧e b²t virus CIH (╚ernobyl).

    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.