Es gibt einen sehr speziellen Fall, in dem man tatsächlich Quellcode für Gamestudio-Programme rekonstruieren kann und zwar in dem speziellen Fall, wenn es ein C-Script Programm ist und die .wdl Dateien in WRS-Archiven verpackt sind (der Fall dass die Dateien offen liegen ist trivial, da braucht man nicht zu diskutieren und Binärcode besteht eben aus Befehlen die der Prozessor direkt verarbeitet, auch nicht diskussionbedürftig.

Wenn nur eine "Dummy" WDL existiert, um das Spiel zu starten (und der Rest ist in WRS files verpackt), dann kann man durch Setzen der Variablen debug_mode auf 1,2,3 die Anweisungen im Klartext lesen. Ist keine externe WDL öffentlich, kann man eine eigene bauen, den debug_mode setzen und versuchen, die WRS einzubinden (trivial) und die WDL Dateien zu includen (Namen wie "player.wdl", "inventory.wdl" oder so sind ja mögliche und durchaus potentielle Dateinamen), zur Not brute-forced man alle möglichen Namen durch.

Der Trick besteht darin, im Quellcode des Spiel gloabl die Variable debug_mode auf -1 zu setzen und wenn es doppelte Variablen gibt, kann der Compiler nicht funktionieren. Ich kann mir auch vorstellen, dass man irgendwie mit debug_external und SED an den Klartext rankommt, darüber habe ich mir aber noch nie Gedanken gemacht.

Also: schön in Lite-C kompilieren, dann können die "Hacker" gucken wie 'se gucken! Keine Angst vor den Kiddies!!

-Christian


P.S: wenn man DLL verwendet, dann ist es möglich, die Namen der exportierten Funktionen zu ermitteln, aber das ist kein echtes reverse engineering, der Hacker ist nur dadurch in der Lage Funktionen zu starten und ohne Wissen über Parameter, Rückgabewerte und die eigentliche Funktion nützt ihm das auch nichts.

Last edited by HeelX; 05/14/10 20:42.