Névjegy- C64 és Amiga vírusok

2013. július 04.

Talán egyesek nem is tudják, de még ezeken a gépeken is léteztek vírusok (vagyis írtak rájuk), amelyek a manapság ismert vírusoktól kisebb-nagyobb mértékben különböznek, de hatásmechanizmusuk azonos: apró méretűek, rejtett állapotban céljuk a fertőzés továbbvitele (vagyis más hordozókra átkerülni), kártékony tevékenység a fő céljuk, amelyet kisebb-nagyobb mértékben valósítanak meg.
(A mai számítástechnika kártékony programjai közé tartozó vírusok ritkábbá váltak - helyettük a gazdagépek biztonsági réseit kihasználó férgek, illetve az adatok megszerzésére irányuló kémprogramok a "divatosabbak").

C64 vírusok

A C64-en csupán egy maroknyi (ebből háromról írunk) kártevő vírus garázdálkodott, leginkább lemezeken fertőzve.

A kezdet 1985 környékére tehető, amikor valószínűleg egy német hacker-csapat létrehozta a BHP nevű vírust (a nevét elvileg a Bayerische Hackerpost számítógépes klubról kapta), amely még a kezdetekben nem volt kártékony, de a többi téren kiérdemelte a vírus megnevezést: rejtőzködve futott, célja volt a terjedés/fertőzés.
Ezt pedig a 64 user magazin cikkére készült, amelyben kijelentették, hogy szerencsére a C64-re nem lehet vírust írni...


Működési metódusa az volt, hogy normál BASIC programokat fertőzött meg, azokba beleírva a saját programsorát - amellyel a program indulásakor a vírus indult el hamarabb, majd utána a fertőzött program. A gépi kódú vírus ekkor elhelyezte magát az I/O műveleteknek fenntartott memóriaterületen (ugye a 64 kByte megcímezhető memóriaterületen kívülre lehetett "kilapozni" az épp nem szükséges adatokat). Ezután a gazdaprogramot visszahelyezve az eredeti címtartományba lefuttatta azt, mintha problémamentes lenne a fájl (futása).
Egyébiránt a vírus egy bizonyos memóriahelyre írt egy jelzőbájtot, amelyet megfigyelt - fertőzött-e a gép, vagy aktivizálni kell-e magát.
Ami a fontosabb, hogy megvédte magát - a MAIN, NMI, CBINV és a RESET vektorok magára irányításával elérte, hogy Break, reset, avagy run/stop/restore esetén se tűnjön el.

Emellett pedig a fájlok olvasásakor és írásakor használatos rutinoknál dolgozik a fertőzés: ha nem fertőzött fájlt talált, beindult a folyamat... Még a mentési fertőzés is lemezmeghajtóknál indult be csak- bár még a lemezfertőzési folyamat összevisszasága miatt hosszabb és feltűnőbb lemezkezelés jelentkezett, de a lemezen lévő szabad blokkok számát nem módosította.

bhpc64.jpg


És hogy mit is csinált ez a 2030 byte méretű BHP vírus?
A futás eléggé véletlenszerű volt: ha a gép rendszerórája (amelyet a másodperc hatvanadrésze, 1 jiffy időközönként frissített a gép) másodperc állása 2-4 volt, a függőleges megjelenítés legalább a 128 sornál járt, akkor lefutott.

Ekkor karakterenként kiírt egy szöveget, miközben a keret színét változtatta. A szöveg végén látható szám a vírus lefutásának (tehát nem fertőzésének) számát jelentette, amely 65536 után nullázódott :)

HIV vírus

A legismertebb vírusnak mondható a C64-en; a lemezen az első 4 fájlt fertőzte meg- bár ha a negyedik fájlt is fertőzöttnek találja, akkor átlép az ötödikre, és az elsőt törli. A lemezek 18. sávját (a könyvtárszerkezet, és a BAM "blokkelérhetőségi térkép" található itt) használta fel a fertőzési információ tárolására. Mindezek mellett az is fertőzőbbé tette, hogy a memórián és a lemezen kívül a lemezmeghajtó memóriájába is átmásolta magát - tehát a gép kikapcsolása még nem tüntette el a vírust.
A HIV2 elviekben (nem biztos, hogy kijutott) egy fejlesztett HIV virus, amelynél a fertőzést áthelyezték a 19. sávra, így a megfelelő víruskereső nem találta meg.

Starfire vírus

A vírus fertőzése: a lemezt átkutatja fertőzésmentes programokért, majd azok sáv és szektorinformációit "megjegyezte". Egy hivatkozást helyezett el, hogy a megfertőzött program a virust inditsa el. Ilyenkor a vírus mögé befűzésre került az eredeti program (tehát működött).

hivkiller.pngEzeken kívül volt még néhány típusú, működési mechanizmusában hasonló vírus, amelyek különféle módon rejtőztek el, védték magukat és fertőztek (ezeket nem részletezzük). A manapság ismert hamis vírusirtókhoz hasonlatos "szívatás" is előfordult - vagyis a program olyan vírusokat "talált meg" a lemezen, amelyek közül több még csak nem is létezett soha...

Sőt ami azt illeti, voltak "közkézen" olyan programok is, amelyek vírusírásra készültek nevükből adódóan; pl.: WAG virus construction kit, Gentlemens virus maker


Amiga vírusok

Az Amiga számítógépen elterjedt és írt vírusokról elöljáróban azt lehet elmondani, hogy több száz volt belőlük, fertőzésük többféle módon volt megoldott - és még annyi, hogy jobban dokumentáltak is maradtak az idők távolából is...

Disk-validator vírus

A diskvalidator vírusok a nevükből adódóan a diskvalidatort fertőzik meg a lemezeken. A legismertebbek ezek közül a Saddam vírus különféle változatai.


diskvalid.gifÉs hogy mi az a diskvalidator? Nos egy gyári program (pontosan 1848 byte), amely a hibás lemezeket - illetve a rootblock (a lemezt leíró, annak fix helyen található része) lemezhibáját hivatott javítani. Ha egy sérült lemez került behelyezésre, akkor az operációs rendszer ennek érzékelése után megkereste az L mappában található Disk-Validator programot, és automatikusan futtatta, hogy megkísérelje a javítást.


Nos, innen már egy lépés csak az, amire mindannyian gondolunk... Vagyis a diskvalidator megfertőzésével, illetve a rootblock "hibájával" operál - ha legközelebb csak behelyezzük (nem kell semmi programot indítani), akkor már hibásnak tekinti a lemezt, és már indítja is a vírust...
És a továbbfertőzést úgy éri el, hogy futáskor áthelyezi magát reset-rezidens területre (vagyis sima resettel ne törlődjön a rendszerből), és várakozik. Egy másik lemez behelyezésekor - ha az még nem fertőzött, akkor már legközelebbi beolvasáskor az lesz. De fertőzés alatt, közben még ez nem észlelhető, de legközelebb, mondjuk amikor nem fut a vírus, de vírusos lemez kerül bele, olvasási hibát jelez.

saddam.png

Ekkor esetleg egy másik lemezt rakunk be, és folytatódik a rombolás - hiszen a fertőzés mellett ugye a lemez blokkjait rombolja annak megváltoztatásával; a bittérkép elrontásával újra elindíttatja a vírust; végül pedig írni kezd a floppyra úgy, hogy közben mozgatja a meghajtófejet... ezután képünkbe nyomja a saját hibaüzenetét, majd onnan pedig csak egérgombra aktiválódó reset következik.

Ez a fajta vírus a régebbi Amiga rendszereken (vagyis 1.3 Kickstart és korábbi ROM esetében) terjedhetett, hiszen az újabb KS-ek esetében a szóban forgó disk-validator már azok részét képezte. Az Old File System fájlrendszernél fejlettebb (vagyis minden más) környezet hasonlóan fertőzésmentes volt.

Bootblock vírus

A legfőbb tulajdonságuk, hogy a lemezek bootblockjába (a lemezek első két szektora, 1024 byte, amelyből a rendszer tudja, hogy kezelje a lemezt- pl. ide kerültek még bootmenük, introk is programoknál) helyezik el magukat.

Link-vírus, file-vírus

A korai változatok a DOS rendszerű lemezek startup-sequence programját fertőzik meg (az Amiga autorun.inf fájlja:), Így a fertőzött lemezek behelyezésekor indul is a vírus. Az újabb, más szervezésű vírusok különféle kritériumok alapján fertőzik a lemezeket (ezek vírusonként mások), és csak a kiválasztottak kerülnek módosításra - olykor nem válogat, hogy futtatható, vagy rendszerállomány, eszközleíró vagy library (korabeli .dll).

sepultura.png

Innentől már magától a vírustól függ, hogy mikor indul el (bizonyos feltételek - újraindítások, ugyanaz a lemez beolvasási száma, stb.), mikor kezdi el a romboló munkát (mondjuk 15 fertőzésenként leformázza a lemez könyvtárszerkezetét- mint egy gyorsformatálás; bizonyos idő elteltével lassítja a gépet, majd reseteli; bizonyos mennyiségű fertőzés/újraindítás után üzenettel tudatja jelenlétét és/vagy az aktuális lemez bizonyos részébe beletöröl, formáz).

Az esetek legnagyobb részében ezek (sőt a legtöbb) vírus a fertőzés érdekében memóriában rejtőző rezidens vírus, sokszor a reset ellen is védve vannak. A felkutatásukat kódolt programkóddal, rejtőzködő futással teszik nehezebbé (pl. egyes vírusok a megfertőzött fájl méretét nem növelik meg, mégis ott vannak - a maguk elhelyezésére szükséges bájtokat csomagolással tömörítik, így a megspórolt helyre pont beférnek).
Voltak olyan káros programok, amelyek csak bizonyos (1.3 és az előtti, vagy 2.0 és az utáni) Kickstart verzión működtek, egyesek több féle módon is fertőztek (lásd fentebb).

Nos, ennyi volt a kis szösszenet a C64 és Amiga vírusok "lelkivilágáról" - írhattunk volna analízishoz hasonló vírusfutási és fertőzési folyamatokat, telezsúfolva állományok és utasítások neveivel, memóriacímekkel, de nem tettük. Akit bővebben érdekel (angolul), az itt tájékozódhat az Amiga vírusokról (ez a poszt is nagyban ezeken alapult):

Agn antivirus center archív- hamburgi egyetem informatika tanszék (link)

The Amiga virus encyclopedia (link)

Game over...

A bejegyzés trackback címe:

https://retemu.blog.hu/api/trackback/id/tr235386604

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

manson karcsi · goo.gl/FVvVX 2013.07.04. 18:33:35

váááh, szaddam vírus!
az biztos, hogy még most is keresztülhajtanék úthengerrel a kezén annak, aki lekódolta.

Sunsetjoy · http://retemu.blog.hu 2013.07.04. 18:59:01

Igen, azt én is elkaptam annak idején - vagy 10 lemezt vágott haza minimum...
süti beállítások módosítása