Hilfe bei Pointern & Adressen

theliquidone

Grünschnabel
Hi.
Ich habe - aus Interesse - mit dem Programm "CheatEngine" die Adresse für den Score bei dem Spiel "Runman unlimited" rausgesucht. Wenn ich den Wert der Adresse über die "CheatEngine" ändere, funktioniert das ganze und ich habe auf einmal 300 Punkte (je nach dem halt). Das ganze wollte ich mir jetzt etwas komfortabler machen. Also testete ich folgendes:
PHP:
            HWND Fenster;

            if (Fenster = FindWindow(NULL, "Runman unlimited"))
            {
                  int *Punkte = (int *)0x004E45D0;
                  // int *Punkte = (int *)((DWORD)"RunMan Unlimited.exe+E45D0" + (DWORD)0xE45D0)
                  cout << *Punkte << endl;
                  *Punkte = 300;
            }

Das ganze stürzt schon beim einlesen der Adresse in den Pointer ab, da das cout nicht mehr ausgeführt wird. Beide Variante - also auch die auskommentierte funktionieren nicht.
Wie ist es mir denn jetzt möglich, die Punkte zu setzen? Bei Google habe ich nichts derartiges gefunden.

~ Chris
 
C++:
const HWND hWnd(::FindWindow(NULL, TEXT("Runman unlimited"));

if (hWnd != NULL && IsWindow(hWnd) == TRUE)
{
    const unsigned long* ptr = reinterpret_cast<const unsigned long*>(0xE45D0);
    std::clog << "Punkte: " << *ptr << "\nNeue Punktzahl: " << std::endl;
    std::cin >> *ptr;
}
... aber ob das wirklich geht ... ich zweifel mal dran ;)
 
Hehe - da ist wohl einer ziemlich erfahren :p
Danke dafür - aber das Programm stürzt leider immernoch ab.
Aber irgendwie muss es ja möglich sein - denn wie gesagt, mit der CheatEngine geht es problemlos.

~ Chris
 
Naja, nach meinem aktuellem Wissensstand in ASM ist es irgendwie falsch ^^

Gründe:

1. Ich glaub kaum das die Variable immer in dieser Adresse ist
Falls es doch so ist dann pardon :)

2. Das ist nur die Adresse innerhalb des für das Spiel/Programm reservierten Speicher.
D.h. du brauchst noch den Offset zum Programm/Spiel selber.
Oder so... weiß selber noch nicht genau wie man das anstellen muss.

<Alles nur Halbwissen, was ich aber tortzdem loswerden wollte>
 
Stimmt ja auch!
Habe ich voll vergessen. Bei CheatEngine ist es ähnliches. Ich musste vorher auch erst den Prozess mit Runman "attachen". Ok, dann such ich da mal nach einer Lösung - habe doch irgendwie keine Ahnung wo ich anfangen soll. Naja.

~ Chris
 
Zurück