Seite 1 von 1

Unbekannte Adressüberschreibung

Verfasst: Mi Feb 25, 2015 9:00 pm
von Shortyoo
Abend Community! :D

Hab wieder mal ein kleines Problem, und zwar folgendes:
Ab für ein Singleplayer Spiel (FF VII wem das was sagt) ein Hack gebaut (wenn man das so nennen kann).
Jedenfalls: Wenn ich den Wert "EXP bis zum Nächsten Level" auf Beispielsweise 1, 2 (egal welche Zahl) setze, springt er nach einem Kampf (also während eigentlich die Gewonnene EXP mit der zum Lv Up verbleibenden EXP subtrahiert wird) zu seiner Ursprünglichen Zahl zurück, ohne dass es da eine Verbindung gibt.

Ich arbeite mit Cheat Engine und selbst wenn ich die Option "Find out what writes to that address" wähle, dann zeigt er mir (während / nachdem der Wert geändert wurde" nichts an, meistens ist es sogar so dass das Spiel abstürzt, woran kann das also liegen?
Habe mich vorerst natürlich vergewissert dass die Adresse die ich habe (ja, es ist der Pointer) die einzige Adresse mit diesem Wert ist, woher also nimmt er seinen Ursprünglichen Wert?

Genau das gleiche beim Level, nur da passiert es viel eher:
Ich ändere das Level (ob mit Cheat Engine oder mit meinem Tool), gehe ins Menü und Schwupps: Level zurückgesetzt, die Chars haben ihr ursprüngliches Level wieder.

Ich hoffe ihr versteht mein Problem und könnt mir irgendwie helfen? :D


Mit freundlichen Grüßen,

Shortyoo

Re: Unbekannte Adressüberschreibung

Verfasst: Mi Feb 25, 2015 10:55 pm
von cloidnerux
Ich hoffe ihr versteht mein Problem und könnt mir irgendwie helfen? :D
Du verstehst/kennst dynamische Speicherverwaltung nicht.
Dein Spiel instantiiert ein neues Objekt, fragt dafür das System nach Speicher(Ram), in dem es dieses Objekt speichern kann. Das Level wird beendet, das Objekt wird gelöscht, daher der Speicher wird frei, natürlich werden die Entscheidenden Informationen ausgetauscht.
Nachdem das Objekt gelöscht wurde, wird der Speicherbereich als "frei" markiert. Deine "cheat engine" hat aber zwischenzeitlich die Adresse deiner Variablen gefunden und schreibt darauf.
Nachdem das Objekt gelöscht wurde, hört es aber nicht auf zu schreiben.
Jetzt da das Objekt weg ist und der Speicher "frei" erkennt dein Betriebssystem, dass das Spiel an eine ungültige Adresse schreiben will und erzeugt einen Fehler und dein Spiel stürzt ab.

Re: Unbekannte Adressüberschreibung

Verfasst: Do Feb 26, 2015 7:48 pm
von Shortyoo
Okay, danke für die verständliche Erklärung! :D

Aber wie kann es sein dass Cheats bei anderen Spielen funktionieren, und gerade bei dem nicht?
Irgendwie muss ich den Wert dieses dynamischen Speichers (bzw. des dynamischen Datentyps) ändern können, oder nicht?