mit ReadProcessMemory 64 bit adressräume ansprechen !? - geht das ?



  • hallo leute,
    ich hab ein projekt vor einiger zeit in 32bit entwickelt.
    Selbiges nutzt z.B. auch ReadProcessMemory... natürlich nur mit int´s ....
    d.h. ich kann nur den 32bit adressierbaren raum ansprechen.
    jetzt möchte ich mein programm/ReadProcessMemory auch für prozesse von nativen 64bit applikationen
    nutzen. nach einigen stunden suchen bin ich leider nicht schlauer geworden... im gegenteil, es hat mich eher verwirrt 😞
    deshalb frage ich mich: kann ich mit ReadProcessMemory überhaupt arbeiten bzw. kann es z.B. int64 verarbeiten ?

    Ich hoffe ihr habt verstanden was ich meinte. Vielen dank im voraus.


  • Mod

    In 32bit Programm hat keinen Zugriff auf den 64bit Adressraum.

    Schreibe Dein Programm als 64bit Programm.



  • ich bin gerade beim umschreiben.... deshalb die frage! wäre klasse wenn jemand eine antwort auf meine fragestellung hätte. ... dass ich mit 32 bit nicht auf 64 adressräume zugreifen kann ist mir natürlich klar ... geht eigentlich auch aus meiner fragestellung hervor...


  • Mod

    Ich verstehe Deine Frage nicht.

    ReadProcessMemory sieht so aus:

    BOOL WINAPI ReadProcessMemory(
      __in   HANDLE hProcess,
      __in   LPCVOID lpBaseAddress,
      __out  LPVOID lpBuffer,
      __in   SIZE_T nSize,
      __out  SIZE_T *lpNumberOfBytesRead
    );
    

    SIZE_T ist bei 32bit Programmen 32bit und in 64bit Programmen 64bit.
    Gleiches gilt für die Zeiger.

    Was willst Du eigentlich jetzt wissen?



  • sorry, dann hab ich ohl schlecht formuliert.
    ich wollte " __in LPCVOID lpBaseAddress", mit einer adresse aus dem 64bit raum füttern bzw wissen ob das funktioniert. (natürlich 64bit compiliert)


  • Mod

    Alle Zeiger in einem 64bit Programm sind natürlich 64bit... Was sonst?



  • danke, mehr wollte ich gar nicht wissen 😃
    ich war mir unsicher und winapi ist nicht so meins 🙂



  • WhiteLion schrieb:

    ich war mir unsicher und winapi ist nicht so meins 🙂

    Nicht so Win-API geläufig und schon mit ReadProcessMemory() rumfuhrwerken? Möglicherweise in anderen Prozessen? Und dann gleich mit 64-Bit?
    Wo andere erst mit den Mechanismen von Win-API pauken müssen, bevor sie überhaupt an 64-Bit auch nur denken dürfen...

    hmmmm, das war der gute Witz zum Wochenanfang 🤡


Anmelden zum Antworten