Wie findet man heraus wo der stackpointer gesetzt wird? HELP!

Hallo,
Ist vieleicht nicht der passenste Header, sorry.

Also ich habe da mal ein Problem, ich benutze OllyDbg v 1.10 um ein bisschen Code eines Spieles nach zu vollziehen( suche eine statische Adresse ), mit Schema F:

Code:
mov [eax+24], value
      |
      v
      mov eax, [ecx+8]
                 |
                 v
                 and ecx, ebx
                           |
                           v
                           ...

Letzt endlich komme ich dann auf folgenden Ausdruck:
// Funktion xy
sub esp, 1C
mov edi, [esp+24]
...

ESP wird gesucht, hm... wie aber finde ich heraus wo esp gesetzt wird?
Hoffe ihr könnt mir da helfen.


Gruß Tobi.
 
Der Stackpointer wird nie richtig "gesetzt", er ändert sich während der gesamten Laufzeit immer, wenn Werte mit push/pop hinzugefügt oder entfernt werden. Dein Wert wird sich auch nicht immer an dieser Stelle befinden.

Du musst also die Stelle finden, an der der Wert permanent gespeichert ist (also von wo er gelesen/nach wo er geschrieben wird).

Für so was sind Memory Searcher (TSearch/Cheat Engine) praktisch. Cheat Engine kann automatisch nach Pointern suchen. Alternativ könntest du nach Speicherstellen, an denen die Adresse deiner Variablen gespeichert sind suchen. Du erhältst dann eine Liste mit Werten, die Pointer sein könnten. Cheat Engine bringt ein schönes Tutorial zu dem Thema mit.

Mit Olly ist das bestimmt auch möglich, da habe ich aber nicht so die Erfahrung mit. Meistens geht es mit Cheat Engine schneller.
 
Mir sind diese Methoden durch aus bekannt, würde mich halt brennend interessieren wie ich das mit Olly mache.


Gruß Tobi
 
Zurück
Oben