Frage zu Dynamische Memory Adressen.



  • Tag alle zusammen,
    ich hätte da mal wieder ein Problem und zwar geht es mir darum ein kleines Tool zu basteln welches via WriteProcessMemory in den Speicher schreibt, einer bestimmten Anwendung. Aber da es ja in moderneren Games so ist das Variablen von Ressourcen( z.B. Gold ect. ) in dynamishcen memory adressen liegen, diese sind nach jeden neustart anders. Habe ich also nun eine Variable einmal ermittelt bzw deren Adresse, wie könnte ich es anstellen das ich zu deren Ursprung komme?, so das ich beim naechsten mal nur noch mein Tool starten brauch und fertig?

    Hoffe ihr könnt mir helfen.

    Gruß Tobi.



  • T0bi schrieb:

    ...diese sind nach jeden neustart anders.

    Poste mal einige Adressen. Eventuell musst Du nur einen Zeiger auf einen Zeiger suchen. Dann wäre sie "relativ fix".
    🙂



  • wie poste mal einige addressen?

    0x12345678 ???? oder was meinste?

    am besten ich nemm des was ich mit ollydbg gefunden hab:

    |Address | Hex Dump   | Disassembly |Comment  |
    | ....   | ....       | ....        |         |
    |6F2A3B91| 66:BF 0F00 | MOV DI, 0xF |         |
    | ....   | ....       | ....        |         |
    

    diese adresse aendert sich scheinbar, der rest bleibt immer "gleich" 😉



  • Such doch die Code-Stelle in der auf die Variable zugegriffen wird und schau wo die Adresse in der Anwendung gespeichert wird. Dann lies erst die Adresse aus und modifiziere es dann.



  • T0bi schrieb:

    |Address | Hex Dump   | Disassembly |Comment  |
    | ....   | ....       | ....        |         |
    |6F2A3B91| 66:BF 0F00 | MOV DI, 0xF |         |
    | ....   | ....       | ....        |         |
    

    Wie muss ich diese Variable interpretieren ? I.e. AnzahlGold = 0x000FBF66 hex (1032038 dez) ?
    Falls ja, dann poste nochmal zwei, drei Adressen dieser Variablen. Sonst lässt sich nicht sagen, ob eine "automatische" Suche erfolgreich sein kann.



  • passt auf weollte ja hier keine cheate link verbreiten aber ich denke mal solange der thread offen ist poste ich ihn euch mal dann schaut selber, dort sind auch jede menge .gif begelegt.

    http://www.bwhacks.com/forums/showthread.php?t=27352
    um dies gehts mir.

    rüdiger schrieb:

    Such doch die Code-Stelle in der auf die Variable zugegriffen wird und schau wo die Adresse in der Anwendung gespeichert wird. Dann lies erst die Adresse aus und modifiziere es dann.

    sorry aber ich kenn mich mit ollydbg noch net so gut aus, könntest du mir evtl. sagen wie ich da in etwa rangehen kann?

    Danke schon mal,

    Gruß Tobi.



  • T0bi schrieb:

    (link)
    um dies gehts mir.

    Ach so. Bei Dir könnte es sein, dass das Modul namens "Game" (ev. eine DLL ?) nicht bei Basisadresse 0x6F2xxxxx im Speicher liegt.
    Finde mal via ModuleFirst/ModulNext o.ä. die Basisadresse heraus und korrigiere den Offset 🙂 entsprechend.
    Wenn das Modul z.B. bei 0x5A700000 im Speicher liegt, dann lautet die gesuchte Adresse 0x5A7A3B91 und nicht 0x6F2A3B91.
    🙂



  • @merker danke fuer den einsatz aber ich komme mit olly noch net so ganz klar... also etwas ausführlicher mit anweisung evtl. müsste es für mich schon sein 🙂 ich such ja schn nach nen paar tuts aber find net wirklich was.

    Gruß Tobi.



  • wie hast du das herraus bekommen mit den modulen und der baseadresse. was ne baseadress ist weis sich glaub das die erste adresse einer registers oder? aber wie man die erhält keine ahnung wie du des gemacht hast....


Anmelden zum Antworten