Pointer | ReadMemory | C#

  • Heyho! :)


    Habe gerade via. Cheatengine ausgelesen wie viel HP ich in einem Spiel habe.
    Leider kann ich meinen gefunden Pointer nicht in C# aufrufen.


    Hat jemand eine schnelle Lösung in C# einen Pointer mit Offsets auszugeben?


    Hier der Pointer:


    heal.PNG




    Danke für jede Hilfe!


    Grüße

  • Was heißt du "kannst" nicht den Wert auf den der Pointer verweist aufrufen? Du weißt nicht wie?
    Versuchst mal mit ReadProcessMemory

    Bereits versucht, gibt mir immer 0 zurück. Cheat-Engine sagt eine andere Value.



    ///// EDIT /////
    Andere Idee war diese:


    Klappt auch nicht, kommt 0 raus.



    // EDIT habs, musste die offsets umdrehen. :D


    2 Mal editiert, zuletzt von EinfachMax ()

  • Verdammt, war gerade an ner Anwort haha. :D
    Aber schön, dass du es gefunden hast.


    Wobei ich finde: Muster suche > Pointer.
    Find ich persönlich einfacher und schneller, kannst du dir ja mal ansehen (wenn du das nicht schon gemacht hast).


    P.s. bei sowas ist es immer hilfreich zwischen den "Abschnitten" dir den Wert der Variable (hier z.B. BaseAddy) zu Debug-Zwecken ausgeben zu lassen. (Einfach aber kann einem echt manchmal beim nachvollziehen helfen)

  • Ein Byte Muster finden ("Pattern scan").
    Dabei suchst du ein gleichbleibendes Muster im Speicher (z.B. eine Funktion, da sollte sich das Muster nicht ändern solange sich die Funktion nicht ändert und selbst dann nur in bestimmten Fällen) das nahegelegen zur Adresse ist, die du finden willst, nimmst die Adresse an der das Muster anfängt, rechnest die Bytes drauf die bis zu der Addresse die du haben willst brauchst und Tada.


    Klingt komplizierter als es ist... Hier ein kurzes Beispiel:

    Code
    42000000: 57 65 72 20
    42000004: 64 61 73 20
    42000008: 6c 69 65 73
    4200000C: 74 20 69 73
    42000010: 74 20 64 6f
    42000014: 6f 66 21 21

    So jetzt wollen wir die Addresse 4200000E finden dazu durchsuchen wir den Speicher nach dem im Programm einzigartigen Muster "57 65 72 20 64 61 73 20 6c 69 65 73" also 42000000-42000008, wenn unsere pattern scan Funktion dieses Muster dann bei 42000000 findet müssen wir dann nurnoch unser Offset (E) draufrechnen und wir haben unseren Wert.


    Wenn man das ein paar mal gemacht hat ist das wirklich ne Sache von 1-2 Minuten... Ein pointer scan dauert für mich jedenfalls meist länger.


    P.s. Sorry, dass die Antwort so lange gebraucht hat, mache gefühlt 100 Sachen gleichzeitig gerade.


    //Edit: Dazu gibt es auch sicher einige mehr oder wniger gute Guides im Netz.


    //Edit2: Falls Teile des Musters variabel sein sollten, musst die du beim suchen natürlich filtern.