Home of Gamehacking
X-Com Enemy Unknown-ReMaKe - Wie EXE bearbeiten? (und mehr...) - Druckversion

+- Home of Gamehacking (http://homeofgamehacking.de)
+-- Forum: Coding (http://homeofgamehacking.de/forumdisplay.php?fid=15)
+--- Forum: C, C#, C++, Visual C++ (http://homeofgamehacking.de/forumdisplay.php?fid=18)
+--- Thema: X-Com Enemy Unknown-ReMaKe - Wie EXE bearbeiten? (und mehr...) (/showthread.php?tid=629)

Seiten: 1 2


X-Com Enemy Unknown-ReMaKe - Wie EXE bearbeiten? (und mehr...) - DaGaYa - 23.11.2011

Moin Moin an alle! Wink

Nach meiner erfolgreichen Vorstellung in dieser Euren Community, möchte ich Euch nun mein Anliegen präsentieren.
Im Folgenden werde ich eine kleine Einleitung (Vorwort) schreiben, damit Ihr mich etwas besser verstehen könnt, warum ich was wie machen möchte.
Für die Ungeduldigen unter Euch, wird dann im weiteren Absatz erklärt, worum es sich hauptsächlich dreht.
Gut gegliedert und aufgeteilt, soll Euch mein Thread daher weniger langweilen - vielleicht liest es sich ja sogar wie ein Ebook. *lach* Wink
Also, dann fangen wir mal an. :sleepy:

VORWORT:
Ich bin ein Jahrzehnte Jahre langer Fan von dem Playstationspiel "X-Com: Enemy Unknown". (engl.: UFO: Enemy Unknown)
Das Spiel existierte als erstes auf dem bekannten und ausgemusterten AMIGA 500 und ist, ohne Ausnahme, auf der Playstation (PS, da PSx ja nur der Arbeitstitel war, sich aber doch als solches eingebürgert hat ^.^) am Meisten bekannt geworden.
Seit anfang der 90er Jahre also, spiele ich alle Jahre wieder dieses unsagbar geniale Game und schiele nur mit einem weinenden Auge auf die PC Version.
Wer diesen Vergleich kennt, weiß was ich meine: Miese Grafiken, grottige Spielqualität als auch die pure Unlust der Programmierer das Game für die PC Plattform auch nur ansatzweise "nett und annehmbar" zu machen, scheiterte kläglich.
Ebenso lange wartete ich daher lange auf ein g'scheites Remake für den PC.
Ich dachte mir so, naja, irgendeiner wirds mit seinen Programmierkünsten schon schaffen können und.... - es hat nie einer wirklich geschafft.
Entweder sah alles exakt so "langweilich" aus und nur die Musik war besser, oder die Grafiken waren besser, aber die Spielqualität erinnerte an rein gar nichts mehr mit X-Com 1.
Zu traurig das alles!

Bis... Ja, bis auf eine kleine Gruppe, die wohl genauso blauäugig wie ich gewesen ist.
Hier ist der Link zu der offiziellen Homepage:
Ufo: The Two Sides
Das Game hat sogar ebenfalls einen funktionstüchtigen Multiplayermodus UND man kann auch im Singleplayer mit den Aliens zocken! (mit mangelnder/fehlerhafter Mensch-KI allerdings -.-")

Dort könnt Ihr nachlesen, dass das Projekt still gelegt werden soll. Das war im August 2011. (Laut dortige News)
Nun habe ich die dortige Gruppe angeschrieben, via Email, da ich gerne gewusst hätte, wie man sich dort denn nun registrieren kann (geht nicht mehr, ist alles abgeschaltet!) und erhielt folgende Antwort:
Zitat:Hi,
sorry, but we're slowly disabling all the funcionalities and closing the project.
Wir haben jetzt November und die Herrschaften schreiben, es ist vorbei.
OMG!
Ich kann es einfach nicht glauben, da genau dieses ReMakE das Beste überhaupt ist.
Verbesserte Musik, bessere Grafiken, kleine Veränderungen zum Gameplay, besseres balancing (AI, Weapons etc), nahezu alle "alten" Bugs aus dem Originalen entfernt... und überhaupt: Fast alles 1:1 kopiert!
Ja, 1:1.
Das war und ist dann wohl auch zum Verhängnis geworden.

Laut deren Aussage gibt es nun Probleme; Rechtliche. Und vermutlich rühren die von "2K" her, da die ja einen "angeblichen X-COM Nachfolger" rausgebracht haben.
Tzä, das ich nicht lache; Nachfolger? OBERLOL? LOL!
Deren Game hat rein gar nichts mit X-Com zu tun. Weder vom Feeling, Geschichte, noch vom Gameplay generell. Ein einfacher und ziemlicher billiger Ego-Shooter. (Siehe hier)
Aber nun gut. Ich möchte mich dazu nicht nun auch noch geistig ejakulieren. *lach*
Die Remaker regt es auf und sind wohl am Boden zerstört. Ich kann das echt gut nachempfinden.
Da hat man etwas über eine sehr lange Zeit mühselig aufgebaut und nun, statt dass es gewürdigt wird, muss es dicht gemacht werden.
Einfach so. Bääääm!

Und die Möglichkeiten, es doch noch "legal" zu machen, schrieben die Remaker ebenfalls schon auf ihrer Homepage. Entweder Rechte von Microprose etc. einholen (unmöglich, seit es wohl schon "2K" tat) oder alles komplett umbenennen. Von Opensource brauchen wir gar nicht erst zu reden. *würg*
Quasi, wie es die Chinesen machen mit Dungeon Keeper 3, dem angeblichen Nachfolger. *schweeeerstenst HUST* -.-"
Also kurz und knapp: Zuviel Arbeit, welche den Remakern wohl zuviel geworden ist.

Erste Erklärungen zum Warum und weitere Fragen...
Mit meiner zweiten Email an die Remaker, bekam ich allerdings keine Antwort mehr:
Ich fragte darin, wie ich denn den "Hardcoded" Text in binäre Dateien umwandeln könnte als auch die EXE überhaupt zu bearbeiten.
Denn eine "Übersetzung" vom Englischen ins Deutsche ist nicht möglich, da alles in der Ufo.EXE gespeichert ist.
(dies hab ich im dortigen Forum nachgelesen - SuFu kann also auch manches Male unglücklich machen ^_^)
Nur wenige Dateien, wie die Ufopedia, sind ausgelagert.
Und selbst das ist etwas eigenartig zu lesen, welches wohl mit der Ufo.EXE zu tun hat oder mit dem Code an sich???
.

Um das alles näher zu erläutern, könnt Ihr das Game nach wie vor bei Chip downloaden (google => "0.99 tts chip" - erster link) oder direkt hier auf IndieDB: indiedb.com/ufo-the-two-sides
Die letzte aktuelle Version (mit dem überarbeiteten Netzwerkcode) ist die 0.99. (wohl intern genannt: 0.99beta - irgendwie scheint alles bei denen von TTS beta zu sein. hihihi ^.^)

Zu meinem eigentlichen Problem:
Ich möchte nun für mich privat, das Projekt für meine Bedürfnisse zum halben Ende führen. Im Glanze seines Seins und in Gedenken an all die wenigen Leute, die soo viel erreicht und ebenso viel geschafft haben.
Warum zum Halben? Ich bin kein Programmierer und bin daher auf Hilfe Eurerseits angewiesen!
Das bedeutet im Klaren, was ich gerne derzeit möchte:
- Ich möchte gerne das Game ins Deutsche übersetzen (von hardcoded auslagern zu binären direkt bearbeitbaren Dateien wie z.B. .txt oder dergleichen!)
- Die Ufopädie ergänzen (diese ist schon als binär ausgelagert und gehört hier nicht zu meiner Frage in diesem Forum)
- Fehlende Bilder hinzufügen, die offensichtlich nur in der EXE existieren
- ... und allgemein wissen, wie ich überhaupt "hardcoded" Sachen auslagern kann, so dass ich diese bspw. mit einer txt-Datei bearbeiten kann.
(Ich denke mal, dass es so ähnlich gemacht wird wie in HTML quasi, intern in der EXE einen Link "nach draußen" zeigen, um die dortige Datei einzugliedern !? Nur die Programmiersprache hierzu schlägt mir Klammeraffen ins Auge. ^.^)

Die wichtigsten Fragen daher, sind für mich derzeit "auf die Schnelle":
1.) Mit welchem Programm sollte ich daher hierfür am Besten anfangen, um überhaupt und wie diese "besondere" Ufo.exe zu bearbeiten?
(Besorgen kann man sich die Programme ja überall: Z.B. aus der öffentlichen Bibliothek ;-) Also am Besten bitte alle Programme auflisten.)
2.) Wie lagere ich den dortigen "hardcoded" Text in Dateien aus, so dass ich alles ohne Probleme bearbeiten kann?
3.) Wie füge ich weitere Funktionen ein, wie z.B. ein derzeitig fehlendes Hintergrundbild für die Ufopedia?

Ok, bei Numero 3 denke ich, geht es in die tiefere (und vermutliche) C++ Ebene oder?
Ich gehe nur davon aus, dass es C++ ist, da ich es im dortigen Forum einst flüchtig las!
Aber die ersten beiden Fragen sind für mich die derzeit wichtigsten, welche ich sehr gerne beantwortet haben würde.
Natürlich seid Ihr alle keine Allwissenden - aber für konstruktive Hinweise und hilfreiche Tip(p)s bin ich sehr aufgeschlossen.

Ich habe viel Zeit und bin stets sehr wissbegierig, wenn es um so ein für mich, neues und insbesondere sehr wichtiges Thema geht!

Hoffe sehr, auf Eure professionelle Hilfe.
Vielen Dank!

Liebe Grüße, Euer X-Com Fan DaGaYa



RE: X-Com Enemy Unknown-ReMaKe - Wie EXE bearbeiten? (und mehr...) - fr33k - 23.11.2011

Erstmal auch meinerseits herzlich willkommen bei uns.
Und auch mal ein dickes lob (wie es silent schon aussprach), selten so einen guten Text gelesen, also Gramatik etc....

Aber zu deinem Anliegen muss ich leider sagen, ich lese mir das morgen durch :-)

Macht heute mein Kopf nicht mehr mit


RE: X-Com Enemy Unknown-ReMaKe - Wie EXE bearbeiten? (und mehr...) - ABartX - 23.11.2011

hi DaGaYa

die offizielle homepage ist down Wink


RE: X-Com Enemy Unknown-ReMaKe - Wie EXE bearbeiten? (und mehr...) - igromanru - 24.11.2011

Also ich habe deinen Text schnell überflogen, es wäre leichter wenn du nur beschreiben würdest was du genau machen möchtest, es ist zwar schhön, dass du genau beschreibst was du vor hast usw. aber ich finde es ist einfach zu viel Text besonders, weil wir dir kaum helfen könenn.
Wenn ich richtig verstranden habe, geben die Entwickler die Source nicht her oder sind nicht mehr zu errechen, auf jeden Fall hast du die Source nicht.
Une die SourceCode kannst du leider nichts machen. Ein programm um eine exe zu bearbeitet gibt es nicht, wenn es alles in die exe "hardcoded" ist, kannst du damit kaum was anfangen. Hardcoded heißt ja fest einprogrammiert, mir ist keine Möglichkeit bekannt wie du es bearbeiten könntest.
Wenn es mit C++ programmiert ist, kannst du es auch nicht dekompilieren. Vielleicht würde es mit einen debugger gehen, wenn du die Strings änderst aber das ergebnis wird trotzdem kaum so sein wie du dir das vorstellst.
Also wenn wirklich alles richtig verstanden habe, wird es nichts aus deinen Vorhaben, weil wie gesagt, um ein Programm ändern zu können braucht man davon die Source Code.

Und übrigens, du bist mit deinen Vorhaben hier nicht richtig, Spiele zu hacken und selbst Spiele zu programmieren sind sehr verschiedene dinger.
Eigentlich müsstest du eine Game Programming Community aufsuchen, die sollten nicht nur besser darüber bescheit wissen, sondern könntest du vielleicht eventuell vorschlagen, das Spiel nachzumachen.


RE: X-Com Enemy Unknown-ReMaKe - Wie EXE bearbeiten? (und mehr...) - Acubra - 24.11.2011

Hey,
also zu deiner ersten Frage: Du kannst .exe Datein mit Hex-Editoren oder Debuggern bearbeiten. Bei dem Hex-Editor siehst jedoch nur die Bytes der Exe als Hexadezimalzahlen, jedoch wenn die Strings (Texte) in der .exe hardcoded sind, dann kannst du in dem Hex-Editor danach suchen und diese auch verändern. Der Debugger (OllyDBG, IDA, WinDBG) zeigt dir die Bytes auch als ASM-Code an. Jedoch erfordert es schon einiges an Wissen, um komplexere Programme ordnungsgemäß zu bearbeiten.

//EDiT: Das Spiel ist in der Tat in C++ geschrieben ([CompilerDetect] -> Visual C++ 9.0 (Visual Studio 2008)), aber das hilft uns nicht weiter, da wir den Sourcecode nicht haben.

Du kannst die Texte im Spiel folgendermaßen verändern (ich habe jetzt nur nach "Credits" "Load saved game" "New Game" gesucht):
Lade dir HxD runter (http://www.heise.de/software/download/hxd/50764).
Starte das Programm und gehe unter "Datei" auf "Öffnen".
Wähle die Ufo.exe aus.
Gehe unter "Suchen" auf "Suchen...".
Suche nach "Credits".
Nun kannst du das Wort verändern, musst aber beachten, dass das neue Wort (Wortgruppe) nicht länger sein darf als der originale String.


RE: X-Com Enemy Unknown-ReMaKe - Wie EXE bearbeiten? (und mehr...) - DaGaYa - 24.11.2011

Hallo!

Achja, so ist das also. Happy
Aber erst einmal danke für die ausführliche und für mich sehr hilfreiche Antwort.
Das ist ja in der Tat dann ziemlich öde, wenn ich den Sourcecode nicht habe.
Mist, dass sich Programmierer auch immer soviel einfallen lassen, dass man ja nicht die Exe direkt bearbeiten kann. ^_^

Wie man direkt mit einem Hexeditor eine Datei bearbeiten kann, wusste ich allerdings schon. Nur dachte ich halt, man könne iwi die Exe direkt "auslesen", wie z.B. eine PHP Seite. Aber selbst da muss ich nun doch eingestehen, ich habe dazu gelernt.
Denn selbst wenn man eine PHP Datei von einer Webseite herunterlädt, sieht man noch lange nicht die echten Quelltext, sprich die PHP Anweisungen.
Weißt wie ich meine?
Man müsste dann an die Originaldatei kommen, quasi wie in meinem Falle den Sourcecode von der Exe Datei.
Aha, gut. Gebongt und verstanden.

Demnach also kann, nein, muss ich also mit dem "unfertigen" Game leben.
Naja, wäre ja auch zu schön um wahr zu sein.
Ich könnte natürlich noch als Alternative C++ lernen, Volkshochschulen besuchen und meine ersten Programme schreiben, damit ich ein Remake von dem Remake machen kann. Aber ich glaube, dann wäre ich wieder zu alt um am Spiel selbst noch Freude zu haben. *lach*

Also, DANKE jedenfalls, für die Antwort(en)!!! Wink

Zum Thema, die Homepage sei down, muss ich sagen, das war wohl nur temporär.
Sie ist noch erreichbar: http://ufotts.ninex.info/
Ansonsten im Cache von Google suchen:
http://webcache.googleusercontent.com/search?q=cache:SFsB8eDgANsJ:ufotts.ninex.info/+ufo+tts&cd=1&hl=de&ct=clnk&gl=de

Dann mal noch einen schönen Abend an Euch alle und weiterhin auf ein gutes Miteinander.

Euer, DaGaYa


RE: X-Com Enemy Unknown-ReMaKe - Wie EXE bearbeiten? (und mehr...) - igromanru - 24.11.2011

(24.11.2011, 19:58)DaGaYa schrieb: Denn selbst wenn man eine PHP Datei von einer Webseite herunterlädt, sieht man noch lange nicht die echten Quelltext, sprich die PHP Anweisungen.
Weißt wie ich meine?
Man müsste dann an die Originaldatei kommen, quasi wie in meinem Falle den Sourcecode von der Exe Datei.
So weit ich weiß, ist es doch nicht möglich die PHP Datei runter zu laden, den an der client bzw Browser wird ja nur der HTML Code geschickt, oder gibt es da doch möglichkeiten?


(24.11.2011, 19:58)DaGaYa schrieb: Demnach also kann, nein, muss ich also mit dem "unfertigen" Game leben.
Naja, wäre ja auch zu schön um wahr zu sein.
Ich könnte natürlich noch als Alternative C++ lernen, Volkshochschulen besuchen und meine ersten Programme schreiben, damit ich ein Remake von dem Remake machen kann. Aber ich glaube, dann wäre ich wieder zu alt um am Spiel selbst noch Freude zu haben. *lach*
Man braucht keine Schule um C++ zu lernen, ich habe alles zuhause gelernt und auf der Arbeit kriege ich C++ nicht mal zu sehen und in der Berufsschule nur Java und PHP, da ich aber eh C++ behersche ist Java voll leicht und PHP kann ich eh.




RE: X-Com Enemy Unknown-ReMaKe - Wie EXE bearbeiten? (und mehr...) - DaGaYa - 24.11.2011

Hallo!

Du kannst zwar alles herunterladen, aber eben nicht alles sehen. Happy
Man sieht dann nur die Webseite, wie das Script es vorgibt, nicht aber das Script selbst, welches die Serveranweisungen vorschreibt. Richtig. ^_^

C++ begleitet mich eigentlich schon mein halbes Leben, kappiert hab ichs aber nie. Weil, ist eben eine komplett andere Sprache.
Aber mal schauen. Visualbasic müsste ich hier noch irgendwo rumfliegen haben, und mal schauen, vielleicht lerne ich ja heute mehr.

Dir noch einen angenehmen Abend. Wink

Lg, DaGaYa


RE: X-Com Enemy Unknown-ReMaKe - Wie EXE bearbeiten? (und mehr...) - igromanru - 24.11.2011

(24.11.2011, 21:56)DaGaYa schrieb: Du kannst zwar alles herunterladen, aber eben nicht alles sehen. Happy
Man sieht dann nur die Webseite, wie das Script es vorgibt, nicht aber das Script selbst, welches die Serveranweisungen vorschreibt. Richtig. ^_^
Ok, dachte schon man kann irgendwie die PHP code herauskriegen.

(24.11.2011, 21:56)DaGaYa schrieb: C++ begleitet mich eigentlich schon mein halbes Leben, kappiert hab ichs aber nie. Weil, ist eben eine komplett andere Sprache.
Aber mal schauen. Visualbasic müsste ich hier noch irgendwo rumfliegen haben, und mal schauen, vielleicht lerne ich ja heute mehr.
Also von syntax her ist PHP eigentlich so ähnlich wie C++, bloß bei C++ hat man noch die ganzen Datentypen.



RE: X-Com Enemy Unknown-ReMaKe - Wie EXE bearbeiten? (und mehr...) - DaGaYa - 25.11.2011

Moin again!

Also, ja, ehm, genau. ^^
Ich habe nichts unversucht gelassen und mich doch noch ein letztes Male auf die Suche nach einer Lösung begeben.
Mit meinem alten HexWorkshop 4.23 (einfach genialer HexEditor ^^) habe ich mir mal die Ufo.exe genauer angeschaut. Nach etwa einer gefühlten Unendlichkeit, kam ich zum Schluß der Exe und las darin interessante Sachen.
Darunter den Pfad zu OpenGl als auch das Stichwort MSIL, was wohl soviel wie Microsoft IL bedeutet. Keine Ahnung.
Gegoogelt dann, habe ich mittlerweile ein dutzend Decompiler durch. Darunter auch den .NET Reflector - ohne Erfolg.
Ebenso den vielversprechenden "JustDecompile Beta" von Telerik - ebenso ohne Erfolg. Dafür aber ein nettes Programm. Happy

Fazit: Nachdem ich nun meine Platte mit mehreren Bytes belegt habe, die völlig überflüssig geworden sind, kann ich einfach nichts mehr machen.
Weder decompilieren, noch sonstwas. Sogar diverse Online-Decompiler versagen.
Somit kann das Thema nun geschlossen werden oder verschoben oder gelöscht oder wat auch immer. Happy

Ohne Sourcecode gehts wohl wirklich nicht. Also entweder selbst programmieren oder einfach damit leben, wie's ist. Schade.
Es ist so, als würde man mir sagen, dort drinnen im dunklen Raum gibt es kein Licht. Aber hier, nimm diese defekte Taschenlampe, du hoffst ja immer noch auf ein Wunder, dass das Licht auf magische Weise an gehen würde. :P

Trotzdem, großartige Community hier. Wink

Lg, DaGaYa

Edit
Aber eine Frage piert mich dann doch noch: Wie können Releasegroups wie bspw. Razor1911 anscheinend decompilieren?
Hm hmmm...