Durva retro hack: Kiderült, hogyan trükközött a Windows 95 a telepítőkkel

windows-95

Nevetségesen primitív módszerrel védte meg magát a Windows 95 az összeomlástól, amikor a külső szoftverek megpróbálták felülírni a rendszerfájljait. Raymond Chen, a Microsoft veterán mérnöke és nem hivatalos rendszertörténésze leplezte le a trükköt: az operációs rendszer nem végzett komplex folyamatelemzést, egyszerűen csak tippelt a futtatható fájlok nevei alapján.

A bűvös szavak listája

A korai PC-s korszakban a külső programok telepítői komoly veszélyt jelentettek. Rendszeresen felülírták a Windows 95 saját, modernebb rendszerelemeit (például a DLL fájlokat) a szoftverek mellé csomagolt régi, akár Windows 3.1-es verziókkal. Hogy ezt megakadályozza, a Microsoftnak tudnia kellett, mikor fut egy telepítő, a felismeréshez pedig bevetették a létező legegyszerűbb sztringkeresést.

Ha a futó program nevében szerepelt a „setup”, az „install” vagy az „inst” kifejezés, a rendszer azonnal telepítőként jelölte meg a folyamatot. Érdekesség, hogy a fejlesztők a lokalizált verziókra is gondoltak, így a listára felkerült az olasz „imposta”, a török „ayarla” és a magyar „felrak” szó is. Amennyiben a fájlnév tiszta volt, a Windows második védvonal ként a futtatási útvonalat ellenőrizte, hogy abban szerepel-e a Setup mappa.

A takarítás mechanizmusa

Miután a Windows 95 a név alapján beazonosította a potenciális veszélyforrást, háttérbe vonult és kivárt. Nem blokkolta az írási műveleteket, mivel sok telepítő ellenőrizte a checksumot, és hibaüzenettel leállt volna, ha nem tud módosítani egy fájlt. Ehelyett a rendszer megengedte a roncsolást, majd a telepítési folyamat lezárása után – vagy a következő rendszerindításkor – akcióba lépett.

A Windows a rejtett SYSBCKUP mappában őrzött biztonsági másolatok verziószámait vetette össze a frissen felülírt fájlokkal. Ha a külső program régebbi verziót kényszerített a gépre, a rendszer csendben visszaállította az eredeti, stabil Windows 95-ös változatot, megmentve ezzel a felhasználót a kék haláltól.

Kulcsszó Nyelv / Jegyzet Védelmi reakció
setup / inst Angol / Alapértelmezett rövidítés Késleltetett verzióellenőrzés és javítás
felrak Magyar lokalizáció Késleltetett verzióellenőrzés és javítás
imposta / ayarla Olasz és Török változatok Késleltetett verzióellenőrzés és javítás

A sufnituning ára

Ez a fajta heurisztika mai szemmel nézve végtelenül kezdetleges, és komoly hibalehetőségeket hordozott magában. Bármilyen hétköznapi program, amelynek a nevében véletlenül szerepeltek ezek a karakterláncok (például egy instant.exe nevű csevegőprogram), azonnal triggerelte a Windows ellenőrző mechanizmusát. Ezzel szemben, ha egy kártékony vagy trehány módon megírt telepítőt egyedi névvel láttak el, az simán átcsúszott a védelmen, és tönkretehette a rendszert.

A módszer tökéletesen mintázza a korai Microsoft-korszak mérnöki filozófiáját, ahol a rendszerszintű robusztusság helyett gyakran gyors, kreatív és meglepően puritán kerülőutakkal oldották meg a kritikus kompatibilitási problémákat.