Home of Gamehacking - Archiv

Normale Version: Find out what accesses this address & Find out what writes this address
Sie sehen gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Schönen guten Tag zusammen,

kann man jemand aufklären wo der Unterschied zwischen Find out what accesses this address & Find out what writes this address ist?

iNvIcTUs oRCuS z.B verwendet "Find out what accesses this address" bei seinem Codecave Tutorial.

Acubra verwendet in seinem Codecave Tutorial "Find out what writes this address".

Und bei viele Tutorial in den gezeigt wird wie man Pointer finden kann, wird mal das eine oder das andere verwendet.
Hey,
bei "find out what writes to this address" werden nur Befehle angezeigt, welche direkt den Wert der Variablen verändern. Also wenn den Adresse z.B. 0040000 ist und du bei Cheat Engine find out what writes to this address auswählst, bekommst du nur Opcodes á la:

Code:
 mov [0040000], eax
add [0040000], eax

Bei "find out what accesses this address" werden dir auch Befehle angezeigt, welche z.B. nur den Wert der Variablen abrufen und mit anderen Vergleichen oder den Wert in andere Variablen verschrieben:

Code:
cmp [0040000], eax

Im Endeffekt zeigt dir "find out what accesses this address" unter anderen die gleichen Befehle an wie "find out what writes to this address", aber zusätzlich meist noch weitere.

Das würde doch bedeuten das für CodeCave "find out what writes to this address" perfekt ist oder?
Weil für CodeCave brauchen wir den Befehl der unseren Wert ändert.
Hey,
nicht unbedingt. Du kannst eine CodeCave auch bei einem Befehl ansetzten, welcher nur auf den jeweiligen Wert zugreift. Bei einem normalen Spiel wird ja dein Healthwert meistens irgendwo angezeigt. Dort ne CodeCave, welche immer einen bestimmten Wert in die Healthaddresse schreibt ist durchaus machbar. Besser wäre natürlich eine CodeCave dort, wo der Schaden von deinen HP abgezogen wird.
(11.06.2014, 14:01)Acubra schrieb: [ -> ]Hey,
bei "find out what writes to this address" werden nur Befehle angezeigt, welche direkt den Wert der Variablen verändern. Also wenn den Adresse z.B. 0040000 ist und du bei Cheat Engine find out what writes to this address auswählst, bekommst du nur Opcodes á la:

Code:
 mov [0040000], eax
add [0040000], eax


Z.B. so könnte das aber auch aussehen...
[code=ASM]mov [EAX], ebx[/code]
EAX könnte hier z.B. den Wert 00400000h haben...

Und die Frage was nun besser ist ob "Find out what writes..." oder "Find out what accesses..." ist eigentlich ziemlich irrelevant. Manchmal ist eine Codecave bei einem "Lesenden" Befehl besser, manchmal aber bei einem "Schreibenden".
In erster Linie gehe ich so vor...
Ich schau mir zuerst an welche Befehle den Wert schreiben. Dann gehts weiter mit einem "Find out what writes..." direkt auf diesen Befehl. Laufen jetzt zigtausende Adressen über diesen einen Befehl und es ist abzusehen das dass aussieben des Speichers sehr sehr schwierig ist, dann schau ich mir an welche Befehle auf diesen Wert zugreifen. Denn manchmal, aber eben nur manchmal, besteht die Möglichkeit das ein "Lesender" Befehl nur diesen einen Wert, bzw. Adresse (die des Spielers) zugreift. Muss man halt immer abwegen und vor allem sich sicher sein was man macht.

Wie gesagt, Codecaves sind auch bei einem lesenden Befehl möglich. Bei z.B. einem Additionscheat meistens auch die bessere Wahl.
Aber stell dir mal folgendes Beispiel vor...
Du findest einen lesenden Befehl der den Health Wert deiner Spielfigur einliest. Wenn wir jetzt mal rein theoretisch annehmen das dies über jenen lesenden Befehl nur 5 Mal in der Minute passiert.
So, und jetzt stell dir mal vor das deine Spielfigur 50 Mal Schaden nimmt in der Minute. Weißt Du worauf ich hinaus will? Der Health Wert wird bzw. kann zwar durch die Codecave geschrieben werden. Und bis zu einem gewissen Punkt würde das auch funktionieren, aber der Wert wird durch die Codecave und den entsprechenden Befehlen zu langsam geschrieben.