Wie ihr sicher wisst lässt sich Alarmstufe Rot 2 nur über eine "Launcher Application" starten, RA2.exe, welche das eigentliche Spiel, game.exe, aufruft. Danach schaut game.exe nach, ob der Launcher läuft, und startet nur dann durch, wenn das der Fall ist. Eng damit verknüpft ist der Serial-Kopierschutz, welcher bei falscher Serial alles nach 30 Sekunden hochfliegen lässt. Außerdem ist der CD-Rom Kopierschutz im Launcher abgelegt, der Spielt jetzt allerdings keine Rolle, da er danach nichtmehr mit game.exe in Verbindung steht. Das selbe gillt für das Autoupdate, welches in Zusammenarbeit mit patchget.dat ebenfalls vom Launcher realisiert wird. Nun ist es so, dass der Launcher mit dem Hauptprogramm, um sich zu identifizieren zwei feste MD5-Hashes austauscht:
1. 48BC11BD-C4D7-466b-8A31-C6ABBAD47B3E
2. D6E7FC97-64F9-4d28-B52C-754EDF721C6F
Des weiteren wird ein Binärcode übermittelt, der Inhalt von ra2.dat. Dieser stellt offenbar eine Art prüfsumme der festen Hashes und auch der verwendeten Game-Serial dar, welche ja ebenfalls ein MD5-Hash ist.
Die genaue Verbindung ist mir noch nicht klar. Ändert man den Inhalt von ra2.dat oder löscht die Datei, fällt der Wert, welcher game.exe übergeben wird logischerweise anders aus. Auch die game.exe verfügt über die obigen festen Hashes und holt sich die Game-Serial aus der Registry. Dadurch wird natürlich auch ein Keychanging nach der Spielinstallation verhindert. Passen die Werte des Launchers und des Games nicht aufeinander, regt das den Kopierschutz auf, und er geht los.
Was mich daran interessiert ist, auf welche Art die Wertübergabe vom Launcher an das Spiel erfolgt. Meint ihr das wird irgendwie über eine Umgebungsvariable gelöst, welcher der Launcher anlegt (falls sowas geht), oder vielleicht per einem Parameter? Kenne mich mit Programmiertechnik in dieser Hinsicht nicht aus. Ich denke am wahrscheinlichsten ist, dass das Spiel in irgendeiner Form "Rücksprache" hält, also dass es eine direkte Anfrage an den Launcher sendet, auf welche dieser Antwortet. In diesem Fall ist die Frage, ob es irgendeine Möglichkeit gibt diese Anfrage herauszukriegen, also festzustellen wie sie übermittelt wird und was übermittelt wird, b.z.w. so dass man eine solche Abfrage nachbauen könnte. Offenbar spielt dieses GDI32-Interface (oder wie das heißt) von Windows dabei eine Rolle.
Also falls jemand dazu jetzt irgendetwas brauchbares einfällt, währe ich erfreut es zu hören.
:uglyLOL:
ThX
Walnut
Achja: Falls jetzt jemand auf die Idee gekommen ist, dass es darum geht den Kopierschut zu knacken, und vorhat hier Cracks zu posten, oder andere Arten zum umgehen des Kopierschutzes zum besten zu geben: Könnt ihr lassen!
Darum geht es nämlich
nicht!
