Profifrage: 64 bit Pointer auslesen, aber wie ?

  • @Twodollarbillie
    Weiß ich wollte ich aber nicht aufgraben und wieder öffentlich machen.
    Aber wenn du schon die Katze aus dem Sack lassen musst^^

  • Meinst du mit "auslesen", finden oder den Wert der Adresse anzeigen, auf welche der Pointer zeigt?

    na beides, das du eine 8 byte lange pointer/adresse ausgelesen hast (also: z.B. "00 12 12 12 12 12 12 12") und den inhalt... ganz normal wie beim herkömmlichen 32 bit, wenn du per api mit readprocessmemory arbeitest. nur halt mit mit 8 byte. meine güte ... so schwer ist es doch nicht zu verstehen, wenn man was von der materie versteht.... hmmmm

    Einmal editiert, zuletzt von WhiteLion (18. Mai 2011 um 08:42)

  • Nein ich meien nur du drückst dich unverständlich aus !
    Und es gibt zu wenig 64 bit software wo man sich auch nur im ansatz die mühe machen würde sowas auszuprobieren!
    und wenn du ein 8 byte pointer lesen wills machs halt mit den normalen funcs und lese es als option ein mit byte[8].
    Dann drehst du das ergbnis um byte [1] = byte [8] usw.
    warum sollte dir ja klar sein wenn du so viel ahung davon hast

  • Das heißt du hast einen Algorithmus, welcher dir zu einer Adresse den Pointer liefert?
    Weil ansonsten hätte man da ja nicht so Probleme mit, weil CE kann das. Damit suchst du dir deinen Pointer mit Offsets und liest den normal
    mit der API aus, keine große Sache oO

    Ach btw

    Zitat

    hey leute, ich beschäftige mich z.Z. recht intensiv mit speicherfunktionen wie z.B. dem auslesen / beschreiben mit der nomadmemory.au3

    Daraus deute ich, dass du es vorher nicht getan hast, d.h. du es gerade erst lernst, aber trotzdem so dreist bist und alle als unwissend darzustellen.

  • @Matthias_199
    das klappt nicht! wenn deine 8 byte in einem adressraum liegen, die du aber gar nicht adressieren kannst, weil es eben eine 8 byte lange adresse ist, dann kannst du da gar nix lesen! deswegen mein beispiel! wie willst du denn die adressierung lösen !? du kannst 8 byte oder von mir aus auch 1000 byte von jeder adresse auslösen & drehen, aber nur solange sie in einem adressraum mit 4byte/32bit liegt. was machst du denn wenn deine ausleseadresse im 64bit adressraum liegt?
    klar kann das die cheatengine 64bit, aber das nützt mir auch nichts, weil mein programm das können soll/muß.

    PenGuin
    natürlich kenne ich mich mit nomadmemory.au3 aus! alles kein problem und meine pointerfunktionen schreibe ich mir auch selber. nur verbleibt immer noch die frage, die mir irgendwie keiner beantworten kann/will:
    wie liest du daten aus einem 64bit programm aus, wenn deine zieladresse der daten in einem 64bit speicherbereich liegt!? also dein pointer 8byte groß ist ?
    unter win32 kannst du ihn natürlich nicht ansprechen, das ist wohl klar.... aber unter win64 bit! das hast du wohl noch nie gemacht oder nie drüber nachgedacht, sonst würdest du mir nicht unterstellen ich hätte keine ahnung...

  • Hast du auch nur ein mal probiert mit einer 8 byte adresse irgend was auszulesen?
    Wenn du jetz nein sagen willst oder nein denkst bitte poste und sage nichts mehr bist du das gemacht bzw probiert hast
    Und zwar kein pointer lese vorgang sondern ein normaler lese vornang.
    Aber wahrscheinlich hast du ja nichtmal ne adresse was alles sinnlos macht!