Vírusok eltávolítása
Vírusok eltávolítására két módszert ajánlanak Az első a biztonsági másolatról történő helyreállítás Biztonsági másolat hiányában kénytelenek vagyunk a fertőzött állományt megtisztítani. Ilyenkor mindennek az ellenkezőjét kell tenni, és ellenkező sorrendben, mint ahogy a vírus csinálta. Ez például felülíró vírusok esetében lehetetlen. Általában azt lehet mondani, hogy ha egy program vírusosan működik, akkor abból ki lehet ölni úgy a vírust, hogy a program utána is működjön. A fertőtlenített állomány nem minden esetben lesz bitről bitre azonos az eredetivel, mert egyes vírusok eltűntethetnek információkat.
Fájlvírusok eltávolítása Bizonyos vírusok esetén nem kell mást tennünk, mint törölni az állományt. Ha például egy felülíró vírus teljes megsemmisítette az eredeti tartalmat, akkor nem tehetünk mást. Akkor is törölnünk kell, ha mondjuk egy companion vírusról van szó, és ez a fájl maga a vírus. Végül akkor is törlés a tennivaló, ha a fájl valójában nem vírus, hanem trójai program, vagy féreg. A legegyszerűbb esetben a fájl nem tartalmaz semmilyen fejlécet, csak a futtatható kódot. A DOS-világban ezek a COM típusú állományok. A vírusok például eltolhatják a régi kódot, és beszúrhatják előre a saját kódjukat. Ekkor a vírusirtás a program elején levő vírus kivágását jelenti. COM fájlok esetén a leggyakoribb módszer, hogy a vírus a program végére másolja magát, és az első pár bájtot lecseréli egy ugróutasításra, mely a vírusra ugrik. Ha végzett a dolgával, a memóriában helyreállítja a program elejét, és utasítja a processzort, hogy ugorjon a program elejére. Az eltávolítás itt az eredeti bájtok megkeresését és visszaírását, valamint a vírus levágását jelenti. A különböző formátumú fájlokat fertőző vírusokat az adott fájlformátum ismeretének birtokában lehet felismerni és kiirtani. Példaként nézzük a hagyományos DOS-os EXE programok fejlécét: ofszetjelentés 00``MZ'' azonosító 02méret % (méret + 511) / relokációs bejegyzések száma 08fejléc mérete paragrafusokban 0amin heap paragrafusok 0cmax heap paragrafusok 0eSS 10SP 12ellenőrzőösszeg 14IP 16CS 18relokációs tábla eltolása 1aoverlay szám
Boot-vírusok eltávolítása A boot-vírusok eltávolítása csak annyiban különbözik a fájlvírusok eltávolításától, hogy nem bájtokkal, hanem szektorokkal dolgozunk. A legegyszerűbb esetben, példa erre a Michelangelo, a vírus változatlanul elmenti az eredeti szektort, nekünk csak ennek a helyét kell megtudni, és visszamásolni. Ízlés szerint a vírus által kitöltött szektorokat ki lehet nullázni. Bonyolultabb eset, amikor az eredeti boot-szektor nincs meg változatlan formában. Ekkor nincs mese, össze kell rakni a szektort darabokból. A darabok valahol meg kell legyenek, mert a vírus is egyberakja azokat, hogy az eredeti betöltési folyamat el tudjon indulni. Ha mégis egy olyan vírussal van dolgunk, mint a REX, amelyik saját rutinjával kiváltja az eredeti partíciós kódot, akkor vagy feladjuk a helyreállítást, vagy generálunk egy általános szektort.
A makrovírusok eltávolítása A makrovírusokat azért említem megint külön, mert az irtási procedúra is más, mint egy hagyományos fájlvírusnál. Itt a keresés és irtás makrók tartalmának ellenőrzését, és makrók törlését jelenti. Ha ezeket az alap funkciókat sikerül megvalósítanunk, akkor az új makrovírusok irtásának a programba építése már semmiség. A Word és EXCEL fájlok OLE2 objektumok. Sajnos az OLE2 objektumok szerkezeti felépítése bonyolult, és nem publikus. Természetesen sikerült használható leírásokat beszerezni, de itt helyhiány miatt nem térhetek ki a részletekre. Annyit azért mindenképpen érdemes tudni, hogy ezek belül egy teljes fájlrendszert tartalmaznak, mely a FAT-es fájlrendszerre hasonlít. Több állomány van minden ilyen dokumentumban, köztük rendszerleíró állományok, és Word6/Word7 esetén a maga a Word dokumentum, amely csupaszon már jobban hasonlít a Word2 fáljformátumára. Mivel a teljes állomány újraszerkesztése szinte reménytelen próbálkozás, ezért a legtöbb víruskereső a makrók területét nem vágja ki fizikailag a fájlokból, csak felülírja azok területét.