[C#] Freeze Value (Memory Editing)

03/26/2013 02:26 dready#16
ganz grob gesehen ja
03/26/2013 02:53 Explo!t#17
naja, kriegs momentan irgendwie nicht hin. Ich glaube mir fehlt einfach das Verständnis momentan dafür -.- Ich weiß nicht wie ich das machen soll. Kriege ständig nen Game Crash bei Schaden.

Ps. dready ich hab dir ne PN geschrieben, du hast nicht geantwortet.
04/02/2013 19:10 -Nò_óNê-#18
hey, keine ahnung ob das hier irgendwie hilft, hab selbst kaum ahnung davon..aber ich versteh das so:

du sagst du hast 1 adresse & 1 value,
dann würde ich nicht versuchen die 6 0x90 hintereinander zu reihen (0x909090909090) und zu schreiben,
sondern z.bsp. mit ner for-Schleife von startadresse 5 mal hochzählen und jedes mal auf diese adresse zu schreiben.

€:
Man darf nicht die speicheradresse des schadenwertes mit NOP beschreiben, da das beim nächsten lesen ja dann irgendwie ..nicht gehn würd, man muss die stelle des codes überschreiben wo das programm den schadenwert beschreiben will. das sind wahrscheinlich aber mehrere stellen die man dann überschreiben muss.
04/02/2013 21:57 mydoom#19
Quote:
Originally Posted by -Nò_óNê- View Post
Man darf nicht die speicheradresse des schadenwertes mit NOP beschreiben
@OP:
Das ist der entscheidende Punkt. Du musst die Stelle im Code finden, die die Speicheradresse deiner Lebenspunkte ändert. Das müssen nicht zwangsläufig mehrere Funktionen sein, es ist aber manchmal so, dass diese Funktion sowohl für deine Spielfigur als auch deren Gegner zuständig ist. Ein einfaches Überschreiben mit No Operation-Anweisungen führt hier im besten Fall nur dazu, dass man nicht nur selbst sondern alle Akteure im Spiel unbesiegbar werden.

Man kann versuchen die Funktion mit gezieltem Patchen einzelner Bytes so zu "verbiegen", dass der gewünschte Effekt erzielt wird. Das ist jedoch nicht immer möglich, zum Beispiel wenn noch eigene Berechnungen an der Stelle ausgeführt werden sollen. Deshalb bietet es sich unter Umständen an, die Funktion zu "hooken". Dabei wird beim Aufruf der eigentlichen HP-Funktion in eine eigene Funktion gesprungen.

//EDIT: Ich kann dir außerdem empfehlen, dir einmal das Cheat Engine Tutorial anzusehen. Besonders Schritt 9 passt meiner Meinung nach ganz gut zu deinem Problem.