![]() |
ReadProcessMemory ERROR 299
Hi,
ich möchte mit ReadProcessMemory einen Speicherbereich in einen Buffer einlesen. Doch ich bekomme die Fehlernummer 299 von GetLastError. Das Prozesshandle ist gültig. Ich wollte halt bei ImageNtHeader.OptionalHeader.BaseOfCode bis zum Ende (ImageNtHeader.OptionalHeader.SizeOfCode) lesen. Aber ich bekomme da immer diese Fehlernummer. dwBytesRead ist immer 0. Danke für Hilfe im Vorraus. Mfg: sk0r |
Re: ReadProcessMemory ERROR 299
Hi,
Zeig mal deinen Code. Wie erhälst du das Prozesshandle? |
Re: ReadProcessMemory ERROR 299
Delphi-Quellcode:
Und dann durchlaufe ich den Speicher von BaseOfCode nach BaseOfCode + SizeOfCode.
hProc := OpenProcess(PROCESS_VM_READ or PROCESS_QUERY_INFORMATION, false, hProcId);
[...] ReadProcessMemory(hProc, tm.modBaseAddr, @gDosHeader2, sizeof(TImageDosHeader), dwBytesRead); ReadProcessMemory(hProc, PImageNtHeaders(Cardinal(tm.modBaseAddr) + gDosHeader2._lfanew), @gNtHeaders2, sizeof(TImageNtHeaders), dwBytesRead); |
Re: ReadProcessMemory ERROR 299
Und welcher RPM-Aufruf schlaegt fehl? :glaskugel:
|
Re: ReadProcessMemory ERROR 299
Delphi-Quellcode:
ReadProcessMemory(hProc, tm.modBaseAddr, @gDosHeader2, sizeof(TImageDosHeader), dwBytesRead);
ReadProcessMemory(hProc, PImageNtHeaders(Cardinal(tm.modBaseAddr) + gDosHeader2._lfanew), @gNtHeaders2, sizeof(TImageNtHeaders), dwBytesRead); var mBuf: array[0..1024-1] of Byte; //Schlägt fehl: ReadProcessMemory(hProc, Pointer(gNtHeaders2.OptionalHeader.BaseOfCode), @mBuf, sizeof(mBuf), dwBytesRead); |
Re: ReadProcessMemory ERROR 299
hast du mal geschau was baseofcode ist? kann sein, dass da müll drin steht (auch wenn die DLL an andere adresse geladen wurde) ggf musst du noch die dllbase draufaddieren
|
Re: ReadProcessMemory ERROR 299
Wenn ich die addiere, dann kommt Zugriff verweigert. :/
|
Re: ReadProcessMemory ERROR 299
Fehler 299 bedeutet dass die Lese- oder Schreibanforderung nur zum Teil erfüllt werden konnte. Sprich Du liest über das Ende des tatsächlich gemappten Speichers hinaus. Ermittle nach dem Holen der Base erst, bis wohin der Speicher überhaupt das COMMIT-Flag hat.
|
Re: ReadProcessMemory ERROR 299
Zitat:
|
Re: ReadProcessMemory ERROR 299
Setze bitte mal einen Breakpoint auf den fehlschlagenden ReadProcessMemory-Aufruf und sag mir welchen Wert Dein gNtHeaders2.OptionalHeader.BaseOfCode hat.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz