A vírusok tevékenységének leglényegesebb célja, hogy más programterületeket fertőzzenek meg. Ezek a programterületek lehetnek programfájlok, programkódot tartalmazó szektorok (boot szektor, MBR - master boot record). Egyes vírusok a fertőzést az egyes területeken különböző eljárással végzik. Előfordulhat az is, hogy egyes speciális állományok (például COMMAND.COM) fertőzésére a víruskód külön algoritmust tartalmaz.
A COM típusú programok mérete - ellentétben az EXE programokéval - meglehetősen korlátozott. Az operációs rendszer - kevés kivételtől eltekintve - nem képes a 64 KB méretet meghaladó COM programok futtatására, így azok a víruspéldányok, amelyeknél a fertőzött fájl mérete meghaladja a 64 KB-ot, soha nem kapnak vezérlést. Ennek megfelelően a COM fertőző vírusok egy része figyel erre és egy megfelelő szűrővel válogatja ki azokat a nagyobb méretű fájlokat, ahol a fertőzött fájl már nem lenne futásképes. Bár az EXE fájlokra nincs ilyen korlát, ennek ellenére sok EXE fertőző vírus szintén csak adott mérethatárig fertőz.
Mivel a túlságosan kis méretű fájlok is veszélyesek lehetnek a vírus számára (túlságosan feltűnő lenne a méretnövekedés, illetve a csalifájlokat szeretné a vírus készítője elkerülni), számos vírus csak a programkódjában megadott alsó korlátnál nagyobb méretű fájlokat fertőz.
A MS-DOS/Jerusalem.Hk.2358 vírus
csak a
10000
bájtnál nagyobb fájlokat fertőzi.
A víruskód elhelyezése a megfertőzött gazdaprogramban különösen érdekes, mert a vírusmentesítéskor a takarító programnak pontosan tudnia kell, honnan és mekkora részleteket kell kivágnia. Bootvírusok esetén az 512 bájtnál (1 szektor) nagyobb programkódot már csak további szektorokban lehet elrejteni, amelyek megtalálása a víruskód konkrét ismerete nélkül elég nehéz.
A fájlok fertőzésekor a vírus
a megfertőzött fájl elején helyezi el saját programkódját.
A víruskészítők már a kezdetektől igyekeztek programjaik elrejtésére. Ennek érdekében a vírusprogramot kódolják, illetve olyan "szolgáltatással" látják el, hogy a kód fertőzésről fertőzésre változzon. Ennek mértéke is változó, és a többalakúság fokának megfelelően megkülönböztetünk polimorf, oligomorf és metamorf kártevőket. Az oligomorf, illetve polimorf kártevőkben alkalmazott kódolásra (és kártevőre) jellemző a beépített dekódoló eljárás (dekriptor) is, mely a legtöbb esetben jól elkülöníthető a víruskód többi részétől.
A COM típusú programok mérete - ellentétben az EXE programokéval - meglehetősen korlátozott. Az operációs rendszer - kevés kivételtől eltekintve - nem képes a 64 KB méretet meghaladó COM programok futtatására, így azok a víruspéldányok, amelyeknél a fertőzött fájl mérete meghaladja a 64 KB-ot, soha nem kapnak vezérlést. Ennek megfelelően a COM fertőző vírusok egy része figyel erre és egy megfelelő szűrővel válogatja ki azokat a nagyobb méretű fájlokat, ahol a fertőzött fájl már nem lenne futásképes. Bár az EXE fájlokra nincs ilyen korlát, ennek ellenére sok EXE fertőző vírus szintén csak adott mérethatárig fertőz.
Mivel a túlságosan kis méretű fájlok is veszélyesek lehetnek a vírus számára (túlságosan feltűnő lenne a méretnövekedés, illetve a csalifájlokat szeretné a vírus készítője elkerülni), számos vírus csak a programkódjában megadott alsó korlátnál nagyobb méretű fájlokat fertőz.
A MS-DOS/Jerusalem.Hk.2358 vírus
csak a
10000
bájtnál nagyobb fájlokat fertőzi.
A víruskód elhelyezése a megfertőzött gazdaprogramban különösen érdekes, mert a vírusmentesítéskor a takarító programnak pontosan tudnia kell, honnan és mekkora részleteket kell kivágnia. Bootvírusok esetén az 512 bájtnál (1 szektor) nagyobb programkódot már csak további szektorokban lehet elrejteni, amelyek megtalálása a víruskód konkrét ismerete nélkül elég nehéz.
A víruskód a fertőzött fájl(ok) végére kerül és a program elején csupán egy ugróutasítást módosít, hogy a gazdaprogram indításakor először a víruskód fusson le, majd visszaugrik az eredeti belépési pontra.
A víruskészítők már a kezdetektől igyekeztek programjaik elrejtésére. Ennek érdekében a vírusprogramot kódolják, illetve olyan "szolgáltatással" látják el, hogy a kód fertőzésről fertőzésre változzon. Ennek mértéke is változó, és a többalakúság fokának megfelelően megkülönböztetünk polimorf, oligomorf és metamorf kártevőket. Az oligomorf, illetve polimorf kártevőkben alkalmazott kódolásra (és kártevőre) jellemző a beépített dekódoló eljárás (dekriptor) is, mely a legtöbb esetben jól elkülöníthető a víruskód többi részétől.
A vírus
programkódja titkosított.
Tevékenységek
Minden vírus, féreg azt csinál, amit akar, illetve amit a programozó beleprogramozott. Egyes vírusok, férgek tevékenységüket (büntető rutinjukat) valamilyen
eseményhez, legtöbbször valamilyen időponthoz kötik.
feltétel
minden aktiválódáskor
tevékenység
törli a CPAV (Central Point Antivirus) és MSAV (Microsoft Antivirus) ellenőrző összeget tartalmazó fájljait
feltétel
március
10-én
tevékenység
módosítja a CMOS beállításokat
a C: meghajtó 1-es fejének minden cilinderén felülírja az első 9-9 szektort
az itt megadott üzenetet jeleníti meg:
Don~t TRUST any virus scanner
-- HKs VTech --
A fertőzés módszerei
A memóriába bekerült vírus akkor fertőz, ha megfelelő célpont kerül a látókörébe. A felügyelt megszakítástól és a vírusprogram kódjától függően megkülönböztethetünk olyan vírusokat, melyek a programfájlok futtatásakor fertőznek, mások a fájlok megnyitásakor vagy zárásakor, másolásakor, olvasásakor vagy írásakor, esetleg már a tartalomjegyzék lekérésekor is, és nem ritka eset, amikor ezek kombinációival találkozunk.
A memóriába rezidens módon betelepedett MS-DOS/Jerusalem.Hk.2358 vírus
minden olyan programfájlt megfertőz, amelyhez valami módon hozzá próbálnak férni.
A csak olvasható (readonly), rejtett (hidden) és rendszer (system) attribútumú fájlok megfertőzésére is képes.
Memória
A vírusok nagyobbik része rezidens módon bekerül a memóriába, ám vannak, amelyek direkt fertőzőként (parazita módon) programkódjuk lefutása után a vezérlést visszaadják a gazdaprogramnak és eltávoznak a memóriából.
A MS-DOS/Jerusalem.Hk.2358 vírus
memóriarezidens.
A memóriába beülő MS-DOS/Jerusalem.Hk.2358 vírus
lecsökkenti a DOS által elérhető memóriát. Ez a csökkenés 8192
bájt.