[Tutorial] X3FL Speichermanipulation mit Cheat Engine

Allgemeine Diskussionen rund um X³: Farnham's Legacy.

Moderators: Moderatoren für Deutsches X-Forum, Moderators for the X3:FL Forums

Post Reply
kazuya112
Posts: 32
Joined: Thu, 25. Nov 04, 12:56
xr

[Tutorial] X3FL Speichermanipulation mit Cheat Engine

Post by kazuya112 » Wed, 7. Jul 21, 10:59

Cheat Engine 7.20 / ArtMoney SE v8.09

In diesem Tutorial wird die ***unmodified*** Manipulation durchgeführt bzw. Nähergebracht.

Warum sollte ich das tun und nicht das sehr komfortable Cheatskript etc. benutzen?
- Der klare Vorteil ist das man viel granularer manipulieren kann und man weiterhin die Spielinternen -und Steam Achievements erhält.
- Schiffs/Stations Ruder, Triebwerk und Frachtraum Manipulation für einzelne Schiffe/Stationen ohne tships Veränderung für alle Schiffe
- Kredits
- Fracht bzw. Gegenstände Werte verändern z.B. aus 2 PBK beliebig viele in den Frachtraum legen
- Sinza 1000% auf einen beliebigen Wert legen

Was nicht möglich ist:
- Schiffe und Stationen erschaffen, klonen etc.
Sprich Dinge, aus dem nichts erschaffen ist, erstmal so ohne weiteres nicht möglich, bzw. bin auch ich hier ahnungslos, wer mag kann hier gerne weitermachen

Achtung!

Werte verändern ohne Konkretisierung kann Spielstände zerstören. Daher Vorsicht walten lassen bzw. vorher eine Sicherung des Spielstandes durchführen.

Achtung!

Man muss nach der Änderung von Raumschiff / Stationseigenschaften durch ein Sprungtor fliegen oder Speichern und das Spiel neu laden. Frachtraum sofort, Triebwerk und Ruder werden aktualisiert, nachdem man durch ein Tor geflogen ist.

Wichtig!

Einmal gefundene Werte werden bei jedem Spielende und/oder Ladevorgang erneuert. Listen speichern bringt also nichts, da alle Werte jedes Mal neu an einen anderen Ort im Arbeitsspeicher geschrieben werden. Wer Lust hat kann im Internet nach dem Stichwort Pointer suchen.

Wichtig!

Einheiten Type immer auf 4 Byte umstellen sonst kann man z.B. den Laderaum nicht beliebig vergrößern. Bei Triebwerken und Rudern kein Problem, macht es aber einheitlicher.

Vorbereitung:
1. X3 egal welcher Titel installiert und spielbereit haben. In diesem Tutorial X3FL
2. Cheat Engine oder ArtMoney SE herunterladen und installieren (Meine Empfehlung Cheat Engine)

Achtung!!!
„Verfolge die Installation aufmerksam und wähle eine "angepasste Installation und benutzerdefinierte Installation", um Veränderungen der Homepage und des Browser-Suchanbieters zu verhindern und nicht benötigte Software abwählen zu können. Einige Sicherheitsprogramme schlagen nach dem Download von "Cheat Engine" Alarm. Die Entwickler weisen ausdrücklich darauf hin, dass keine Schadsoftware mitgeliefert wird, sondern dass es sich um einen Fehlalarm handelt.“

Quelle:
https://chip.de

Links:

Cheat Engine:
https://cheatengine.org/

ArtMoney:
https://www.artmoney.ru/

3. Cheat Engine starten.

Image

4. Im Hauptfenster auf Settings gehen und Fast scan on by default den haken entfernen.

- Hintergrund ist, da sonst viele Werte nicht gefunden werden bzw. fehlen.

5. Spiel starten. In diesem Fall X3FL, Spielstand laden oder ein neues Spiel beginnen. Mit ALT+TAB aus dem Spiel gehen.

Image

6. Oben auf den Bildschirm klicken und das gewünschte Spiel/Programm auswählen. In diesem Fall X3FL

7. Wir beginnen nun mit dem Finden von werten. In dem Beispiel hier möchte ich Kredits finden und den Wert verändern.

Image

Hinweis! Stellt im Spiel unter Optionen -> Spiel den Spieleeinstellungen unbedingt „Spiel im Hintergrund laufen lassen“ auf aus. Warum? Weil sich die Werte, die ihr sucht, z.B. Kredits, wenn das Spiel weiterläuft verändern und die Suche somit unbrauchbar werden kann.

8. Wir merken uns die genaue Menge an Kredits die wir haben auf unserem Spieler/Schiffskonto haben. In diesem Beispiel sind es 2.
Hinweis! Bei mehr als 1000 Kredits ist die Darstellung im Spiel 1.000, es sind aber 1000 ohne den Punkt.

Image

9. Mit ALT+TAB aus dem Spiel wechseln und bei Value in dem Suchfeld 2 eintragen, nun auf First Scan klicken

10. Nun hat Cheat Engine viele Werte gefunden. Diese müssen wir jetzt eigentlich nur eingrenzen, indem wir in dem Spiel den Wert wieder verändern. Ich hole aus z.B. meiner Station weitere Kredits und erhöhe mein Spieler/Schiffskonto auf z.B. 11

11. Mit ALT+TAB aus dem Spiel wechseln und bei Value in dem Suchfeld 11 eintragen, nun auf Next Scan klicken

12. Den Wert nun weiter wie beschrieben im Spiel verändern und erneut Next Scan drücken bis nur noch wenige/ein Wert/e übrig sind.

Image

13. Den Wert markieren und auf den Roten Pfeil klicken. Der Wert wird nach unten in die Bearbeitungsleiste kopiert. Wenn man nun Value doppelklickt, kann man seine Kredits beliebig verändern.

14. Ich setze den Wert auf 40000000 und wechsele nach Bestätigung wieder in das Spiel zurück.

Image

15. Wie man in dem Bild sieht, habe ich nun 40 Millionen Kredits in meinem Spielerschiff. Ich kann jetzt z.B. das Geld auf Stationen verteilen. In Cheat Engine verändert sich der Wert weiterhin womit ich während der sog. Spielesession durchgehend den Betrag nach Belieben verändern kann.

I. Kommen wir nun zur Manipulation von Schiffswerten. Dies erfordert deutlich mehr Denkarbeit und ein konkretisiertes Vorgehen, denn die Werte des Schiffes welche man verändern möchte haben natürlich andere Schiffe im Universum ebenfalls. Mein Trick hierbei ist sich des aktuell belegten Frachtraumes des Schiffes zu bedienen, um die wunschwerte zu finden plus etwas Mathematik.

II. Wir benötigen ein Schiff, welches wir bearbeiten wollen. Dieses kann voll aufgerüstet oder neu gekauft/ gekapert etc. sein spielt erstmal keine Rolle. In diesem Beispiel ist es eine gekaperte Perikles von den Piraten, welche sich in meinem Besitz befindet. Wir sehen hier bereits das ich den Laderaum komplett vollgemacht habe.

Image

III. Am einfachsten geht man vor, wenn man in einem Schiff sitzt. Aktuelle Laderaum Größe bzw. Waren die an Bord sind mit Cheat Engine suchen.
Dann Ware abwerfen, aktuellen Frachtwert anpassen erneut suchen.
Ware einsammeln, Wert suchen usw., bis man den aktuellen belegten Laderaums Wert hat.

IV. Nun kommen wir zur besonderen Herausforderung dem Finden der anderen Schiffswerte. Wir markieren den aktuelle Laderaum Größe Wert und klicken mit der rechten Maustaste darauf und wählen „Browse this memory region“. Ein zusätzlich neues Fenster öffnet sich die Speicheransicht.

Image

V. Auf der linken Seite der unteren Tabelle sehen wir nun im Gesamten Speicher unzählige Adressen. Wie bekommen wir nun jetzt die anderen Schiffswerte heraus? Hier hilft das Wissen wie X3FL Schiffswerte des jeweiligen Schiffes nahgelagert speichert. Sprich die Werte sind nicht weit entfernt.
Wir scrollen im Memory Viewer unseren Markierten Wert nach unten bis in etwa der Mitte.
Es gibt nun zwei Wege. Sehen oder errechnen. Wenn man zwei Monitore hat das Spiel auf dem einen und Cheat Engine auf dem anderen sieht man sich verändernde Werte im Memory Viewer aufleuchten, besonders wenn man ein Schiff hat, welches noch nicht ausgerüstet ist, sehe ich, da ich den aktuellen Laderaum gefunden habe in der nähe sicher verändernde Werte z.b. ich kaufe Triebwerkstunings und kucke fast parallel im Memory Viewer sofort. Es blinkt kurz auf. Diese Methode ist für neu gekaufte, gebaute oder gekaperte Schiffe die schnellste um die Ruder, Triebwerk und maximalen Frachtraum zu finden da sie einfach aufleuchten. Mit einem rechte Maustaste Klick auf die rot aufleuchtende Adresse und dann „Add this adress to the List“. Für Perfektionisten dann alle Ruderteile kaufen und erst dann verändern, da die Kaufbarkeit der Triebwerke erhalten bleibt und wenn man versehentlich dieses kauft, sind die Werte wieder auf Ursprung bzw. so wie gekauft. Die Änderungen kann man im Schiffsinformationsmenü direkt einsehen. Man muss nach der Änderung von Raumschiff / Stationseigenschaften durch ein Sprungtor fliegen oder Speichern und das Spiel neu laden. Frachtraum sofort, Triebwerk und Ruder werden aktualisiert, nachdem man durch ein Tor geflogen ist.

Image

Image

Image

VI. Kommen wir nun zum Ändern von Schiffswerten, wenn diese bereits maximal aufgerüstet sind und die Werte nicht mehr veränderbar sind. Wir bedienen uns wieder an dem Wert für den aktuellen Frachtraum und errechnen uns den Wert ganz simpel oder kennen das Schema. Im Memory Viewer bewegen wir uns von der Position des aktuellen Lagerraumes einfach 5 Positionen weiter nach links. Hierbei markieren wir den Hex Wert der automatisch markiert wurde für den aktuellen Frachtraum und drücken die Pfeiltaste nach links (oft springt er nicht weiter, sondern bleibt in einer Zeile stehen. Man muss 9-10-mal die Pfeiltaste drücken.)
Der erste Wert hinter dem aktuellen Lagerraum ist der Wert für die aktuelle Lagerraumgröße, wieder weiter nach obigem Schema ist das Ruder, danach das Triebwerk. Die Werte für Schilde und Hülle zu manipulieren klappt, werden allerdings wieder bei Veränderung auf den Ursprungswert zurückgesetzt. Man könnte diese Werte zwar einfrieren, allerdings stürzt das Spiel hierbei gerne ab.

VII. Letzter Punkt ist die Errechnung wer daran Freude hat. Als Beispiel hier meine Pericles, die Werte für den aktuellen Lagerraum in Hexadezimal gefunden haben und den Hex Wert in die Zwischenablage kopieren. Dann den in Windows 10 integrierten Taschenrechner starten und oben links bei den drei strichen umstellen auf Programmierer. Hier in das Feld hex klicken und STRG+V. Dann Minus 5 hexadezimal und diesen Hex Code kopieren und bei Cheat Engine einfügen. Man zieht nun ganz einfach weiter 5 hexadezimal ab und durch quasi die Schiffseigenschaften zu scrollen bzw. diese bearbeiten zu können.

Image

Ich hoffe diese Anleitung hilft euch genauso wie mir, da ich mein Spielerschiff gerne Übertune um nicht beim Flug durch einen Sektor einzuschlafen. Kann gerne überarbeitet, ergänzt, korrigiert oder anderweitig verwendet / übersetzt werden. Ich habe das Tutorial komplett von selbst getestet, die Screenshots erstellt etc.

Enjoy


Apscondo
Posts: 55
Joined: Sun, 14. Dec 08, 02:39
x4

Re: [Tutorial] X3FL Speichermanipulation mit Cheat Engine

Post by Apscondo » Mon, 12. Jul 21, 21:02

Danke schön.

hast du auch so was mit dem ruf bei den Fraktionen? ;)

kazuya112
Posts: 32
Joined: Thu, 25. Nov 04, 12:56
xr

Re: [Tutorial] X3FL Speichermanipulation mit Cheat Engine

Post by kazuya112 » Sun, 12. Sep 21, 00:08

alexalsp wrote:
Sat, 10. Jul 21, 20:29
:gruebel:

viewtopic.php?f=201&t=436933
Hi,

steht ganz oben mit dran:

Warum sollte ich das tun und nicht das sehr komfortable Cheatskript etc. benutzen?
- Der klare Vorteil ist das man viel granularer manipulieren kann und man weiterhin die Spielinternen -und Steam Achievements erhält.
- Schiffs/Stations Ruder, Triebwerk und Frachtraum Manipulation für einzelne Schiffe/Stationen ohne tships Veränderung für alle Schiffe
- Kredits
- Fracht bzw. Gegenstände Werte verändern z.B. aus 2 PBK beliebig viele in den Frachtraum legen
- Sinza 1000% auf einen beliebigen Wert legen

Was nicht möglich ist:
- Schiffe und Stationen erschaffen, klonen etc.
Sprich Dinge, aus dem nichts erschaffen ist, erstmal so ohne weiteres nicht möglich, bzw. bin auch ich hier ahnungslos, wer mag kann hier gerne weitermachen

kazuya112
Posts: 32
Joined: Thu, 25. Nov 04, 12:56
xr

Re: [Tutorial] X3FL Speichermanipulation mit Cheat Engine

Post by kazuya112 » Sun, 12. Sep 21, 00:11

Apscondo wrote:
Mon, 12. Jul 21, 21:02
Danke schön.

hast du auch so was mit dem ruf bei den Fraktionen? ;)
Hi,

hab ich versucht. Da die Werte aber Prozentual dargestellt werden, kannst du da leider nix einfach suchen. Sprich du kannst nach unbekanntem Wert suchen und jedesmal wenn sich der Wert verändert positiv bzw negativ weitersuchen. Wird aber eine Ewigkeit dauern und den Aufwand einfach nicht wert sein.

Mit dem Cheatscript bist du da besser aufgehoben.

Borocco
Posts: 13
Joined: Tue, 28. Oct 08, 19:37
x4

Re: [Tutorial] X3FL Speichermanipulation mit Cheat Engine

Post by Borocco » Mon, 13. Sep 21, 00:54

Haben die Leute, die Cheat Engine nutzen auch beim Starten des Spiels den
Spruch "Der Weg ist das Ziel - Taoistisches Sprichwort" zu sehen bekommen? :)

Nuit
Posts: 250
Joined: Wed, 18. Jul 07, 07:22
x3tc

Re: [Tutorial] X3FL Speichermanipulation mit Cheat Engine

Post by Nuit » Tue, 19. Jul 22, 14:52

Apscondo wrote:
Mon, 12. Jul 21, 21:02
Danke schön.

hast du auch so was mit dem ruf bei den Fraktionen? ;)
Das geht, ist aber etwas aufwändiger:

Zuerst muss man wissen, wie der Ruf in X3 funktioniert:
Spoiler
Show
- Die Ränge und Prozente sind nur eine Menüdarstellung.
- Die Basis davon ist ein Wert der zwischenn -1.000.000 und +1.000.000 liegt und sich in der Script-Engine "notoriety" (Bekanntheit) nennt.
- Der Wert wird in einen Rang und dessen Fortschritt (die Prozente) umgerechnet. Diese Umrechnung ist nicht linear.
- Durch die neuen dynamischen Fraktions-Beziehungen kannst du nicht alle Fraktionen gleichzeitig über Rang 6 (Notoriety über 33333 halten)
- Solltest du deinen Ruf überall auf Maximum einstellen, wird die nächste Ruf-Veränderung das radikal verändern.
Grobe Anleitung für das Editieren:
Spoiler
Show
Vorbereitung, wenn du das Spiel am Ende unbedingt als Nicht-*modified* erhalten möchtest:
Spiel speichern, Script Editor aktivieren, bau dir / installiere ein Script, welches dir die aktuelle Notoriety der Völker ausliest, die du ändern möchtest, benenn es so, dass es in der Script-Liste ganz oben steht um es schnell zu finden.
Lade den Nicht-*modified* Spielstand.

Durchführung
1. Stoppe so gut es geht alle Hintergrund-Aktionen im Spiel, die deinen Ruf unkontrollierbar beeinflussen können (Patroullien, Händler, Andockerlaubnis für Völkerhändler an Stationen, etc.)
2. Deaktiviere in den Spieloptionen den Punkt, dass das Spiel im Hintergrund weiter laufen kann.
3. Bereite 2 Aktionen vor, die eine effektive Ruf-Veränderung triggern und sich sehr schnell nacheinander ausführen lassen. (Baumissionen sind hier ideal)
4. Spiel Speichern, am Besten mit einem Zusatz Speicher-Slot
5. Script editor aktivieren - aktuelle Notoriety auslesen und notieren
6. Erste Baumission ausführen
7. Wieder aktuelle Notoriety auslesen und notieren
8. Zweite Baumission ausführen
9. Wieder aktuelle Notoriety auslesen und notieren
10. Spiel komplett beenden und neu starten und Save laden (jeder Save-Load erzeugt einen neuen Speicher-Bereich, wodurch die Werte in eigentlich ungenutzten Speicherbereichen vorkommen können, was die Suche erschwert)
11. Auf den Desktop wechseln und in CE den ersten Satz Werte suchen (separates CE-Fenster für jede Fraktion die du abgrasen willst)
12. Zurück ins Spiel, erste Baumission ausführen
13. Wieder auf den Desktop wechseln und in CE die Veränderungen für den zweiten Satz Werte suchen.
14. Zurück ins Spiel, zweite Baumission ausführen
15. Wieder auf den Desktop wechseln und in CE die Veränderungen für den dritten Satz Werte suchen.
An dieser Stelle sollten nur noch sehr wenig Optionen übrig sein oder gar nur ein eindeutiger Wert pro Fenster
16. Zurück ins Spiel, Piloten-Ansicht mit der Ruftabelle aufmachen
17. Die gefundenen Einträge durchtesten, bis der gewünschte Ruf getroffen ist (Unzutreffende Änderungen sofort rückgängig machen !)

- Musst vielleicht ein bisschen mit dem Timing testen, damit das Ganze zuverlässig klappt. Sollte es wiederholt nicht funktionieren, läuft im Hintergrund noch irgendwas, was deinen Ruf ggf. unkontrolliert verändert.
- Bei negativem Ruf funktioniert das Ganze sehr viel zuverlässiger, da die Speicherwerte dafür riesig sind und es weniger Wertduplikate gibt.
- In den ersten 2 Ruf-Stufen kannst du diese Art der Suche gleich bleiben lassen. Die Notoriety-Werte sind so klein, dass es bei der Erstsuche 100.000de von Treffern geben wird, da müsstest du 5-10 kontrollierte Ruf-Änderungen triggern, bis du die Liste so klein hast dass du die Werte verwenden könntest, was nahezu unmöglich ist.
- Finger Weg vom Terraner-Ruf, bis du auch den ATF-Ruf verfügbar hast. Die beiden sollten immer identisch sein. Bringst du Sie aus dem Gleichgewicht, kann das das gesamte Ruf-Handling bei den Terranern zerschießen !
- Nicht neu Laden wenn du grad am rumfummeln bist. Die genutzten Speicher-Adressen ändern sich beim Laden eines Saves. Sprich: Musst du neu laden, weil du dich verdaddelt hast, musst du von vorn anfangen (ab Punkt 10) .
Hast du die Werte erstmal ausfindig gemacht, kannst du die Aktion für die erneute Durchführung vereinfachen:
Spoiler
Show

Hast du die Ruf-Werte eindeutig ausfindig gemacht, kannst du im Speicher den Ruf-Flag ausfindig machen.
- Speicher-Ansicht in CE öffnen
- zu der Adresse navigieren. Der Wert steht als 4 Byte Einträge im Hexadezimalformat an dieser Stelle
Achtung: Speicher wird von oben herab ausgelesen, die Ansicht startet aber beim kleinsten Wert - die Einträge sind also rekursiv zu lesen.
Bsp. Dein Ruf Wert ist "32109"
Das entspricht einem Hexadezimalwert von "7D6D", auf 4 Bytes verlängert "00007D6D"
Die 4 Bytes in der Speicher-Ansicht wären dann demnach "6D 7D 00 00" wobei 6D der Wert ist, der exakt an der ausgegebenen Speicheradresse steht
(die anderen 3 an den 3 darauffolgenden).
- Wenn du den Block gefunden hast, schau dir die 12 nachfolgenden Adressen an. Dieser Wert ist der "Flag" für den Ruf. Für das Bsp.: 6D 7D 00 00 XX XX XX XX XX XX XX XX XX XX XX XX
- Nach diesem kannst du im Speicher suchen, um die anderen Stellen für die Ruf-Werte zu finden.
- Dieser Flag bleibt für diesen Spiel auch gleich (in allen Saves die zum selben Spiel gehören), du kannst also auch Tage später wieder danach suchen.
- Aber, nicht alle Treffer sind wirklich verwendete Ruf-Werte. Schau dir den 4er Block an, wo der Ruf Wert stehen sollte (die 4 Adressen davor)
-> Positive Rufwerte bewegen sich immer zwischen "01 00 00 00" und "3f 42 0F 00" (in der Speicher-Ansicht)
-> Negative Rufwerte bewegen sich immer zwischen "C1 BD F0 FF" und "FF FF FF FF" (in der Speicher-Ansicht)
- Stehen Werte außerhalb dieser Ranges dort, ist es kein Ruf-Platzhalter (oder ein ungenutzter, dann steht da "00 00 00 00").
- Auch hier gilt: Änderungen machen, während das Spiel im Hintergrund still steht, sollte nach Rückkehr ins Spiel, keine Änderung an einem der Ränge sichtbar werden (in unter 1 Sekunde), sofort rückgängig machen.
- Nicht neu Laden wenn du grad am rumfummeln bist. Die genutzten Speicher-Adressen ändern sich beim Laden eines Saves. Sprich: Musst du neu laden, weil du was kaputt gespielt hast, musst du von vorn anfangen.
Zu guter Letzt: Das alles sind Arbeiten am aktuell benutzen Speicheradressen laufender Prozesse, eine versehentliche oder unbewusst fehlerhafte Änderung kann zu invaliden Einträgen führen, was den Prozess abschmieren lassen kann.
Das passiert selbst Leuten, die sowas regelmäßig machen. Also nicht verzweifeln, wenn dir beim Rumprobieren mal das Game abstürzt.

Wenn du das *Modified* nicht scheust, der ganze Aufwand lässt sich mit einem Einzeiler im Script-Editor im Spiel selbst lösen :D

Cheers,
Nuit

P.S.:
kazuya112 wrote:
Sun, 12. Sep 21, 00:08
- Der klare Vorteil ist das man viel granularer manipulieren kann und man weiterhin die Spielinternen -und Steam Achievements erhält. - das Nicht-*Modified* zu erhalten ist der einzige Grund, wenn man es zur Manipulation seiner Spielstände nutzt, das "granulare manipulieren" kann der Script Editor auch
- Schiffs/Stations Ruder, Triebwerk und Frachtraum Manipulation für einzelne Schiffe/Stationen ohne tships Veränderung für alle Schiffe - geht auch per Script Editor und das viel einfacher
- Kredits - geht auch per Script Editor und das viel einfacher
- Fracht bzw. Gegenstände Werte verändern z.B. aus 2 PBK beliebig viele in den Frachtraum legen - geht auch per Script Editor und das viel einfacher
- Sinza 1000% auf einen beliebigen Wert legen - geht auch per Script Editor und das viel einfacher
Hitman - In Space

DanKara
Posts: 330
Joined: Fri, 21. Dec 18, 14:19
x4

Re: [Tutorial] X3FL Speichermanipulation mit Cheat Engine

Post by DanKara » Wed, 20. Jul 22, 14:15

Mhm ... verstehe ich nicht?

Du schreibst beim (Neu-)Laden eines Saves ändert sich die "Adresse" des Ranges, den ich manipulieren möchte.
Also ... Vanilla-Save erstellen, ScriptEditor starten, Rufsteigerungen erzielen und Werte auslesen und Ruf-Werte in Cheat-Engine scannen - soweit oK für den nun modifizierten Spielstand.
Sodann Vanilla-Save (wieder) laden ... und dann? "Adresse" hat sich geändert? "Flag" mit Rufsteigerungen aus nicht gemachten Missionen ist nicht vorhanden?

Post Reply

Return to “X³: Farnham's Legacy”