next up previous contents index
Next: Harmadik szint: felhasználói program Up: A megvalósítás részletei Previous: Első szint: a vírusadatbázis

  
Második szint: hordozható vírusölő függvénykönyvtár

A második szinten elhelyezkedő függvénykönyvtár feladata a fájlokban való víruskeresés, a vírusok kiölése, könyvtárfákon való végighaladás, stb. Annak érdekében, hogy ez a rész is hordozható legyen a különböző géptípusok között, a könyvtár C-ben íródik.

Filozófiája szerint minden vírus fájlvírus. Például a boot-vírus is. Ekkor a fájl a teljes winchester vagy a teljes partíció, a cilinderek, fejek és szektorok száma pedig attributumként kérdezhető le.

A fájloknak két típusát különbözteti meg, ezek a primitívek  és a konténerek . A primitívek közönséges fájlok, melyek tartalmazhatnak vírusokat. A konténerek további primitíveket és konténereket tartalmazhatnak. Ilyen konténerekre példák a tömörített fájlok, mint a ZIP vagy az ARJ. A konténer kezelőprogramja biztosítja, hogy a konténeren belüli fájlokat (bizonyos megszorításokkal) ugyanúgy kezelhessük, mint a közönséges fájlokat. Többféle primitív és többféle konténer létezik, és ezek egy adott file esetében nem zárják ki egymást. Egy program lehet például DOS  EXE primitív és Windows  PE EXE primitív is egyszerre. Mi több, egy fájl lehet egyszerre konténer is, és primitív is, példa erre az önkicsomagoló arhív. Bár gyakorlati haszna megkérdőjelezhető, a HTML fájl a HTML primitíven kívül kezelhető konténerként is, ekkor a konténer az URL -ekben megadott erőforrásokat láttatná fájlokként, így a víruskereső távoli gépeken is végezhetne vírusellenőrzést. Windowsban is container-eknek hívják az OLE  konténereket. Rögtön adódik, hogy ezeket a fájlokat is úgy kell kezelni, mintha tömörített fájlok vagy könyvtárak volnának, így a makrovírusokat már csak a Word6 fájlból kell kiirtani, ami nincs töredezve.

A hívható függvényeken kívül a könyvtár kezel úgynevezett callback  (visszahívható) függvényeket is. Ha a felhasználói program lecseréli az alapértelmezett funkciót a sajátjára, akkor a könyvtár azt fogja hívni. Ennek például akkor van szerepe, amikor a könyvtár vírust talál, és tudni akarja, hogy mi legyen vele. Az alapértelmezett függvény csak kiírja a fájl és a vírus nevét a standard kimenetre, de a program megcsinálhatja azt, hogy egy grafikus ablakban megkérdezi a felhasználót, hogy kiirtsa-e a vírust.


next up previous contents index
Next: Harmadik szint: felhasználói program Up: A megvalósítás részletei Previous: Első szint: a vírusadatbázis
Nagy Ferenc Laszlo
1999-05-21