ich hatte vor mir per Webbrowser-Komponente in C# eine Seite zu öffnen und dann per ReadProcessMemory() Werte nur auszulesen.
Das mit dem Auslesen funktioniert gut (eigene Klasse geschrieben) sofern ich bei jedem Programmstart die dynamische Adresse eingebe.
Mit der Cheatengine finde ich den Basepointer nicht. Ich finde bei einer Instanz vom Programm:
Die Adressen
Code:
154AD3AC:1 154AD3AC:2 154AD3AC:4 154AD3B4:1 154AD3B4:2 154AD3B4:4 1A12FF08:1 1A12FF08:2 1A12FF08:4 1A12FF08:8
Code:
2034DC09 - 8B 4A 30 - mov ecx,[edx+30] // edx+30=0x1A12FED8+30 =0x1A12FF08 54E8D174 - 8B 07 - mov eax,[edi] // edi = 0x1A12FF08 , steht oben mit in der Liste
steht man bei
Code:
2034DC09 - 8B 4A 30 - mov ecx,[edx+30] // edx=0x1A12FED8
Code:
54E8E32C - 8B 50 04 - mov edx,[eax+04] // eax = 13BE9F58
test edx,edx // ist edx==0
je Flash ....
Code:
54E8E329 - 8B 04 10 - mov eax,[eax+edx]
Code:
EAX=13BE9F58 EBX=00000001 ECX=10385270 EDX=2271F000
Wie lange soll ich suchen? Bis ich irgendwann den Basepointer ebp mit in der Rechnung habe. Dann könnte ich ja nach und nach die Adressen rückwärts rechnen.
Diese automatische Suche der CE ist langsam und findet keine Adresse. Kann natürlich auch daran liegen, dass Flash nicht als Standalone läuft, sondern das Flash in der Webbrowser-Komponente ausgeführt wird.
Als Process-Id verwende ich
Code:
System.Diagnostics.Process.GetCurrentProcess();






