Hallo Experten,
ich möchte die Daten eines Prozesses (Programm: Age of Empires 2) auslesen und verändern. Bei dem AoE2 will ich zum Beispiel den Goldstand erhöhen. Der Goldstand ist sicher unverschlüsselt in einer Variable zur Laufzeit des Programms/Prozesses gespeichert. Das Betriebssystem hat natürlich die virtuelle Speicherverwaltung, das heißt es wird schwerer an die Variable im physichen RAM ranzukommen. Wo genau ist die Variable gespiechert, im phyiskalischen Ram oder in einer Auslagerungsdatei? Wie kann ich das herausfinden? Kann mir jemand genau erklären wie ich die virtuelle Adresse des Goldstandes herausfinde (habe das schon mit dumpfile-Erstellern (vom Windows 8 Taskmanager…?ka) versucht). Gibt es dazu gute Dumpfile-Ersteller. Dann muss ich natürlich über die MMU (das Ding was die virtuellen Adressen in die physikalischen übersetzt) die physikalische Adresse herausfinden (hat jemand da ne Anleitung). In welcher Form wird die Variable gespeichert sein, int, float,…? Das müsste heißen die Variable ist über mehrere Bytes gespiechert? Wie komme ich genau an die Zahl?
Und… wenn ich in einem C-Programm per Modulo-Operation die Adresse einer variable auslese, wenn ich also bsp. den Wert der Adresse 0xf830000f haben will, ist diese Adresse eine virtuelle Adresse sodass diese erst per MMU in die physikalische umgewandelt wird und dann der wert von der physikalischen Adresse geholt wird, oder ist das direkt schon die physikalische Adresse???
Vielen Dank für alle Antworten, und kommt mir nicht mit
„Das geht nicht!“ an
mfg