ReadProcessMemory auf 64bit System: Fehler 299



  • Guten Tag,
    ich komme hier nicht so ganz weiter...
    Ich habe ein 32bit Programm, das die Kernel32.dll auf einem 64bit System in einem 32bit Prozess auslesen soll.
    Der Fehler ist, dass es nicht komplett gelesen werden kann. Ich habe mal im Internet geschaut, aber überall nur Fetzen gefunden. Hier bezogen sie sich auf ein anderes Problem und dort hatte niemand 'ne Ahnung..

    Deswegen frage ich noch einmal hier..
    Es ist ein ganz normaler ReadProcessMemory-Call, der auf 32bit funktioniert, auf 64bit System halt den Fehler 299 wirft.
    LordPE z.B. war es auch nicht möglich, die Kernel32.dll auszulesen aus einem 32bit Prozess, der in einem Emulator auf einem 64bit System lief.

    VirtualProtectEx liefert den Fehler 487, was bedeutet, dass auf die Adresse wohl nicht zugegriffen werden kann.

    Debug Priviliegen mit SE_DEBUG_NAME habe ich auch schon getestet, ebenso statt PROCESS_ALL_RIGHT nur _VM_READ, _VM_OPERATION und _QUERY_INFORMATION.
    Klappt alles nicht..
    Da muss es doch irgendwo einen kleinen Tweak geben, dass es auf 64bit läuft..

    Ich hoffe, dass mir jemand helfen kann..
    Danke!



  • Es0teriker schrieb:

    ...
    Da muss es doch irgendwo einen kleinen Tweak geben, dass es auf 64bit läuft..
    ...

    € hier stand Mist

    Sorry hab mich verlesen haette gedacht du willste nen 64Bit Prozess auslesen. Mein Fehler

    Greetz



  • Was wäre das für ein unnützer 32bit Emulator, wenn man nicht ganz normal als 32bit Prozess den Speicher eines anderen 32bit Prozesses auslesen könnte?



  • zum Edit:
    Achso

    Nochmal zum Problem:
    Die Adresse lasse ich mir mit den TlHelp-Funktionen oder der PsApi anzeigen und sie lautet z.B. 0x77B70000

    Ab da funktionieren weder VirtualProtectEx, noch ReadProcessMemory...



  • aslr



  • er hat recht. Hole dir die Adressen mit GetProcAddress in deinem Prozessraum, die DLLs sind an gleicher Adresse. Ansonsten auf elevated achten, mit Adminrechten testen, bei OpenProcess Rechte beachten die du brauchst. Sollte es immernoch nicht klappen über Trusted Execution Technology informieren.


Anmelden zum Antworten