Lassan jönnek az ünnepek, elcsendesednek a munkahelyek, a szervezetünk is elkezd felkészülni a közeljövőben bevitt több kiló cukor lebontására… Általában ez az időszak egybeesik azzal, amikor eszembe jutnak azok a dolgok amiket mindig is szerettem volna, de valamiért sose jutott rá idő.
Most se történt ez másként, elővettem a Steam library-mat és elkezdtem lapozgatni. Meg is akadt a szemem az XCOM: Enemy Unknown-on, amit már lassan 10 éve tárolok, minden gépemre lelkesen feltelepítem, van róla emlékem, hogy zseniális játék, és valamiért sose jutottam a végére.
De hát mikor, ha nem most, fel is készültem a maratoni játék session-re, letöltöttem, rányomtam hogy play, és…
Türelmes voltam, elviekben a Laser Squad-ra is várni kellett amíg betöltött a disk-ről, de ez nagyon nem akart betölteni.
Az ember ilyenkor nem esik kétségbe, gyorsan be is írtam a keresőbe. XCOM updating executable. És mit találtam? Kétségbeesett embereket redditen:
És mérges embereket a steam review-k alatt:
…
Meg egy csomó hülyeséget.
Kipróbáltam a laptopon is, ott elsőre elindult, és ez volt az a pont, ahol éreztem, hogy ez a játék már megint másról fog szólni, mint a földet megszálló idegenek lövöldözéséről. Pedig eskü nem én keresem a bajt, egyszerűen csak mindig én nyúlok bele ezekbe a csodás dolgokba.
Azért nem nagyon szoktam megrettenni ha valami nem megy, de nem akartam rögtön azzal kezdeni, hogy darabjaira szedem a játékot, így jöttek a szokásos dolgok, mint a process explorer, process monitor.
Az már a probléma legelején nyilvánvalóvá vált, hogy itt nem windows, directx, és egyéb dolgokról lesz szó. Az alkalmazás ugyanis egy launcher-el indul.
Mivel már ez se indul el, nagyon nem kellett nyomozni. Első körben kizártam az internetet, kipróbáltam, hogy net nélkül is elindul-e, elindult. Aztán kimásoltam onnan és megnéztem mi a minimális dolog amivel már elindul. Ez egyébként az alábbi 3:
XCOMLauncher.exe steam_api.dll SteamQuery.dll
A launcher – steam kommunikáció működött, bárhonnan indítottam, láttam a steam-en, hogy indul. Végül szétkaptam az egész XCOM launchert, gondoltam biztos abban van valami turpisság, de nem kimondottan egy bonyolult dolog, és ha kikötöttem belőle a steam api hívásokat simán működött. Szóval egyre inkább a Steam és VALVE felé terelődött a gyanú.
Persze néztem disk használatot, hálózati forgalmat, összenéztem a Steam összes app-hoz kapcsolódó konfigurációs fájlát (abból vissza is alakítottam párat a valve vdf formátumáról) de csak nem találtam annak az okát, hogy miért nem indul el, vagy hogy más státuszban lenne a telepítés mint a másik gépen, ahol meg elindul.
Végül eljutottam oda, hogy diff-eltem a két app könyvtárat, mert már tényleg csak arra tudtam gondolni, hogy ott tér el valami (bár mi, hiszen mindkettőt az internetről töltöttem). És meglepő módon két eltérés volt. A két exe fájl.
Amikor egy exe fájl vége tér el (és egy picit az eleje), meg egy képernyőn 2-nél többször szerepel a cert szó, nem nehéz dolog kitalálni, hogy mi a különbség a két bináris között. Bizony a működőt valaki digitálisan aláírta.
És tényleg. A Steam úgy tűnik letölti az alkalmazás binárisát aláírás nélkül, majd első indításnál a kliens oldalon digitálisan aláírja. Ha éppen tudja. Gondolom terheltek lehetnek a szerverek, vagy esetleg olyan balgák, hogy a teljes binárist feltöltik aláíásra, nem csak a hash-t, fene se tudja. De mindenesetre nekem sokszori próbálkozásra se sikerült aláíratnom vele az exe-t, még azon a gépen se amin egyszer már aláírta őket sikeresen.
Én nem nagyon értem, hogy a kliens oldali aláírásnak mi értelme, alapból miért nem aláírva tölti le, meg ha kicsit jobban belegondolunk ebbe, akkor én abban se vagyok biztos, hogy ne tudnék vele bármit aláíratni, de hát ők tudják mit csinálnak. Egyszer lehet utána nézek ennek, de a steam nem annyira izgi, fene se akar turkálni benne.
Mindenesetre amíg ezt a problémát nem oldják meg, feltöltöttem az aláírt exe-ket, így talán másoknak még megadatik az esély, hogy megmentsék a világot a gyilkos űrlények támadásától.
Köszi valve a játékot, az aláírt exe-k pedig mindenkinek aki szereti (2027-ig jók):
https://drive.google.com/file/d/1kQuVI4twFprei5klS_pLiV5-wzj5Xh6e/view?usp=sharing