Fix reading/writing non-debugged process memory

This commit is contained in:
Duncan Ogilvie 2023-02-22 08:47:28 +01:00
parent e0348b36fe
commit 9676c960b6
2 changed files with 9 additions and 3 deletions

View File

@ -244,7 +244,7 @@ typedef struct __PUBLIC_OBJECT_TYPE_INFORMATION
typedef struct _PROCESS_BASIC_INFORMATION
{
PVOID Reserved1;
NTSTATUS ExitStatus;
PVOID PebBaseAddress;
PVOID Reserved2[2];
ULONG_PTR UniqueProcessId;

View File

@ -98,7 +98,10 @@ public:
{
auto process = processFromHandle(hProcess);
if(!process)
return false;
{
// This happens when reading from a process not being debugged
return !!ReadProcessMemory(hProcess, lpBaseAddress, lpBuffer, nSize, lpNumberOfBytesRead);
}
return process->MemReadSafe(ptr(lpBaseAddress), lpBuffer, nSize, (ptr*)lpNumberOfBytesRead);
}
@ -106,7 +109,10 @@ public:
{
auto process = processFromHandle(hProcess);
if(!process)
return false;
{
// This happens when writing to a process not being debugged
return !!WriteProcessMemory(hProcess, lpBaseAddress, lpBuffer, nSize, lpNumberOfBytesWritten);
}
return process->MemWriteSafe(ptr(lpBaseAddress), lpBuffer, nSize, (ptr*)lpNumberOfBytesWritten);
}