1
0
mirror of https://github.com/mastercodeon314/KsDumper-11.git synced 2024-11-13 18:10:50 +01:00
KsDumper-11/KsDumperDriver/Utility.c
2023-01-22 22:05:57 -06:00

36 lines
924 B
C

#include "NTUndocumented.h"
#include "Utility.h"
NTSTATUS DriverSleep(int ms)
{
LARGE_INTEGER li;
li.QuadPart = -10000;
for (int i = 0; i < ms; i++)
{
KeDelayExecutionThread(KernelMode, FALSE, &li);
return STATUS_SUCCESS;
}
return STATUS_UNSUCCESSFUL;
}
PVOID SanitizeUserPointer(PVOID pointer, SIZE_T size)
{
MEMORY_BASIC_INFORMATION memInfo;
if (NT_SUCCESS(ZwQueryVirtualMemory(ZwCurrentProcess(), pointer, MemoryBasicInformation, &memInfo, sizeof(MEMORY_BASIC_INFORMATION), NULL)))
{
if (!(((uintptr_t)memInfo.BaseAddress + memInfo.RegionSize) < (((uintptr_t)pointer + size))))
{
if (memInfo.State & MEM_COMMIT || !(memInfo.Protect & (PAGE_GUARD | PAGE_NOACCESS)))
{
if (memInfo.Protect & PAGE_EXECUTE_READWRITE || memInfo.Protect & PAGE_EXECUTE_WRITECOPY || memInfo.Protect & PAGE_READWRITE || memInfo.Protect & PAGE_WRITECOPY)
{
return pointer;
}
}
}
}
return NULL;
}