Allg. frage zu Pointern, und wie man sie rausfinde

04/11/2007 20:09 Busti#1
Hallo liebes e*pvp-team, hallo liebe Leute,

Nach langer Zeit melde ich mich hier auch mal wieder, und das gleich mit einer Frage, die wohl nicht so einfach zu beantworten ist.

Also, vorweg will ich sagen das ich bereits über google.de gesucht habe, und Tutorials, bzw. CodeSnippets angesehen/getestet habe.

Zu meiner Frage, wie finde ich den Pointer raus, z.B. bei WoW von den Leben, da das ja über DMA läuft...,
Nun, ich finde meine Adresse, beispielsweiße :
0x049f0d = 7000 ; meine Leben
Nun Beende ich mein Spiel, und starte es neu, nun ist die adresse aber
0x0940fd = 7000 ; meine leben,
Wie finde ich nun den Pointer,und was muss ich dazurechnen um auf die neue Speicher-Adresse zu kommen ?

Ich hoffe ihr versteht meine Frage, und bitte kommt mir net mit google.de oder sowas :(, wär nicht helfen will/kann muss ja nicht hier reinschreiben :))

also, ich freue mich schon auf jede Antwort :)).

Grüße,
- Andi aka. Busti

PS: ja, hier war ich auch schon
([Only registered and activated users can see links. Click Here To Register...])
04/11/2007 21:15 sd333221#2
Such eine Verhältnismäßigkeit mit der du den Pointer findest,
ich habe das ja alles schon gecodet.
Also wenn du einen fertigen Code willst schreib mir eine Private Nachricht...
04/12/2007 14:49 verT!c4L#3
wie sieht das in perl aus? daran krüppel ich schon die letzten Tage rum...

pm ´s mir auch mal bitte, vlt kann ichs portieren...
04/12/2007 17:57 Busti#4
Okay,einen Code hätte ich schonmal, danke an sd333221!

Nun wär noch eine Erklärung, bzw. lösung zum Weg nett :).

Danke schonmal.
04/13/2007 00:34 wiz#5
Wenn die Speicheradresse sich verändert liegt hier DMA vor. Das heißt irgendwo im Code wurde ein new() (und damit malloc() oder Ähnliches indirekt) oder ein malloc() oder Ähnliches aufgerufen.
Aber da der Code selbst ja auch wissen muss, wo der neu allozierte Speicherplatz ist, muss dieser die Adresse irgendwo speichern - und zwar absolut. Und genau diesen Speicherplatz suchen wir.
Fündig werden wir über einen Schreibzugriff in den allozierten Speicher.
Dieser erfolgt nämlich über die Adress-Variable. Findest du einen Schreibzugriff, dann ist dort entweder eine absolute Adresse verwendet (etwa ein mov [0x00EE],0x32), wobei dann 0x00EE die Adresse des Speicherplatzes enthält, oder eben indirekt, wobei du dann zurücktracen musst.

Das heißt im Klartext: Write-Breakpoint auf die gefundene relative Stelle setzen, warten bis der Debugger poppt, Code anschauen, wo der relative Speicher referenziert wird. Geht natürlich auch mit einem Read-Breakpoint.
04/13/2007 01:55 Busti#6
1. Danke für die nette erklärung.
2. Glaube ich,werde ich das net schaffen,zumal nicht mit meinen intus den ich gerade habe.
3. meinst du es wär möglich das mit einen beispiel, z.B für ollydbg zu erläutern?

FETTES DANKE schonmal!!!

grüße
04/13/2007 05:19 wiz#7
[Only registered and activated users can see links. Click Here To Register...]
04/13/2007 12:21 sd333221#8
Quote:
Originally posted by wiz@Apr 13 2007, 00:34
Wenn die Speicheradresse sich verändert liegt hier DMA vor. Das heißt irgendwo im Code wurde ein new() (und damit malloc() oder Ähnliches indirekt) oder ein malloc() oder Ähnliches aufgerufen.
Aber da der Code selbst ja auch wissen muss, wo der neu allozierte Speicherplatz ist, muss dieser die Adresse irgendwo speichern - und zwar absolut. Und genau diesen Speicherplatz suchen wir.
Die Möglichkeit ist zwar simpel aber genial, kriegst ein Karma dafür.
Leider werden oft etliche Rechenoperationen mit dem Pointer durchgeführt
(dank dir, schlauer Compiler), der dadurch dann erst total verfremdet wird
bevor er zum Memory Pointer wird, deshalb müsste man manchmal durch das
halbe Programm tracen :D.
Leider habe ich WoW deinstalliert sonst würde ich das ausprobieren
04/13/2007 13:27 verT!c4L#9
warum proggen wir nicht in perl und/oder c uns solche progs zusammen?
wäre lehrreich...

Naja, da ich keine I-Net bis 14.5. und ich nun FEIERABEND hab (haha), werd ich mich zu haus mal damit beschäftigen... ne Mixtur aus Perl und C schwebt mir vor, kleines intuitiv nutzbares Hacking Tool.... nein ich mein nicht netcat :D

Egal, ciao!
04/13/2007 17:15 Busti#10
Gern,nur das ich mit autoit code :p

@wiz +karma für das richtig nette DMA tut und die nette erklärung :))