[C++] Basepointer von Solitär!?

  • Hiho,
    brauche etwas Hilfe bei meinem Problem. Habe versuch den Basepointer von Solitär herauszufinden und bin dabei leider gescheitert.
    Ohne Pointer, sprich dynamisch, kann ich mit diesem Code prima den Punktestand verändern. Sobald ich jedoch dem vermeintlichen Basepointer die Offsets hinzufüge, hörts dann auf.

    Auf dem Screenshot unten kann man sehen, wie ich auf die Punktestand-Adresse komme. Soweit klappts auch. Nur wie ich das solitaire.exe+BAFA8 in Programmiersprache umsetze, hab ich noch nicht so ganz geschnallt.. irgendwer eine Erklärung?

    mfg

    [CENTER][/CENTER]

  • Du musst dir das Handle ran holen, mit nem Prozess Inject o.ä und dann via GetModuleHandle das Handle abfragen und dann einfach dein Offset addieren.
    Alternativ musste nicht Injecten sondern nimmst halt die WinApi FindWindow.

    Pointer = Handle + 0x00******;

    Das war in deinem CE als Solitaire.exe Angezeigt wird, ist in CE zbsp das Handle.
    Hier nochmal ein Beispiel:

    http://stackoverflow.com/questions/1156…it-a-value-in-c

  • Danke für den Hinweis. Habe leider das Problem, dass man dazu nicht sonderlich viel findet und mir GetModuleHandle momentan nur 0 zurückliefert.

    Code
    moduleHandle = (DWORD)GetModuleHandle(L"Solitaire.exe");

    Irgendwas falsch gemacht?

    €: Habe mal weiter geschaut.. eine Alternative wäre es, eine DLL zu injecten und dann per GetModuleHandleA(0) die Basisadresse zu bekommen.. aber eig müsste es doch auch so klappen?

    [CENTER][/CENTER]

  • Du verwechselst da GetModuleHandle mit FindWindow,
    Das ModuleHandle kannst du nur beziehen, wenn du eine DLL Bastelst die
    sich den Speicher mit der Anwendung teilt.

    FindWindow schaut so aus:

    Hab dir das mal eben erstellt:
    http://pastebin.com/9UFpupTB

  • Zitat von Synaptic;315802

    Du verwechselst da GetModuleHandle mit FindWindow,
    Das ModuleHandle kannst du nur beziehen, wenn du eine DLL Bastelst die
    sich den Speicher mit der Anwendung teilt.

    FindWindow schaut so aus:


    Hab dir das mal eben erstellt:
    [C++] // xxx.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung. // #in - Pastebin.com


    Ok, lag ich mit meiner Annahme doch richtig - schaue ich dann mal, dass ich eine DLL injecte.

    Das mit dem Fenster war halt so eine Idee, weil ich nicht wusste, was für Parameter diese Funktion braucht (ja, mit LPCTSTR lpModuleName kann ich leider nicht soviel anfangen) und das irgendwo stand.

    Ansonsten danke ich dir für deine Hilfe - werde ich dann mal schauen^^

    [CENTER][/CENTER]

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!