Pointer finden Problem

12/21/2010 01:12 Dark Raider#1
Ich brauche ein wenig Hilfe einen Pointer in einem Spiel zu finden. Ich suche einen Pointer auf die Z-Koordinate meines Players. Das Problem ist diese ist nicht statisch. Also habe ich nachgesehen, wie darauf geschrieben wird und bin auf diese Anweisung gestoßen:

Code:
fstp dword ptr [ebx+0x000000d8]
EBX war dort 05843200. Das ist die BaseAdress meines Players, von dort werden auch jede Menge andere Variablen abgeleitet. Allerdings ist die PlayerBaseAdress, wie gesagt, nicht statisch und wenn ich nun in Cheat Engine nach ihr suche, erhalte ich 400 Adressen. Wenn ich 15 Minuten im Spiel alles Mögliche tue, werden daraus 90 Adressen. Jetzt weiß ich nicht so richtig wie ich an dieser Stelle weiter komme. Keiner dieser Adressen ist eine Base Adress, so dass ich dann für jede dieser 90 Adressen, wieder Pointer suchen müsste. Das hab ich probeweise mal bei einer Adresse gemacht und habe gemerkt, dass es dann wieder knapp 90 Adressen gibt die auf diese Adresse zeigen. Das wären dann 90²=8100 Adressen die ich überprüfen müsste und wäre dann wahrscheinlich immer noch nicht am Ende. Das kann ich ja aber schlecht tun.
Wie kome ich jetzt am Besten an meine Adresse?

Außerdem habe ich noch eine Frage zu OllyDbg.
Ich möchte herausfinden, an welcher Adresse, von einem Breakpoint aus, das letzte Mal in ein Register geschrieben wurde.
Angenommen mein EIP steht bei 12345678 und EAX enthält den Wert 0000FFFF. Jetzt möchte ich wissen, wann das letzte mal VOR 12345678 ein Wert (also 0000FFFF) in EAX geschrieben wurde.
Ich habe einfach mal von Hand mit Breakpoints probiert die letzte Anweisung vor 12345678 zu finden, die in den EAX schreibt. Aber 500 Anweisungen vorher wurde EAX immer noch nicht verändert. Bietet Olly irgendeimne Möglichkeit das heraus zu finden, außer von Hand?

Sry, falls ich das ganze ziemlich schwer verständlich geschrieben habe aber um die Uhrzeit krieg ich nicht mehr allzuviel auf die Reihe <.<
12/21/2010 07:59 MoepMeep#2
Ach, deine Playerbase ist nicht statisch? Dann ist es auch keine Base. Schonmal was von Mutlilevelpointern gehört? :>
12/21/2010 10:48 Dark Raider#3
Mit der PlayerBase meinte ich eher, dass das die erste Adresse einer Struktur oder etwas ähnlichem ist. Mir ist auch klar, dass es dann ein multilevel Pointer ist, ich weiß nur nicht wie ich da jetzt weiterkommen soll, weil ich eben ganze 90 Adressen alleine schon habe, die auf "den Anfang der Playerstruktur" zeigen und auch von denen nicht eine statisch ist.
12/21/2010 11:39 -AmA-#4
Verrätst du uns den Namen des Games?
Dan geh ich später selber nachgucken...
12/21/2010 12:41 Dark Raider#5
Was seeeeeehr altes :P: Unreal Tournament GotY

Edit:
Also über 'nen Pointerscan mit Cheat Engine habe ich jetzt einen Pointer. Aber ich hätte gern auch die Adressen der Positionen von den anderen Spielern. Ein Pointerscan ergibt da nichts (hätte ich auch nicht wirklich erwartet...). Hab ich da nur die Möglichkeit OllyDbg raus zu holen und dann zu reversen? Code Injection scheint nämlich leider nicht zu gehen, weil an der Stelle an der die Position geändert wird nämlich auch alle Möglichen anderen Sachen geregelt werden.