From d096a8321d59eff2c820e121758b046f10df3631 Mon Sep 17 00:00:00 2001 From: Brady Date: Wed, 2 Oct 2024 19:01:22 -0500 Subject: [PATCH] Add some missing flags in `is_readable` --- src/os/win32/Process.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/os/win32/Process.cpp b/src/os/win32/Process.cpp index a59a04b..7fe4285 100644 --- a/src/os/win32/Process.cpp +++ b/src/os/win32/Process.cpp @@ -42,6 +42,12 @@ namespace hat::process { } bool hat::process::is_readable(const std::span region) { + constexpr DWORD readFlags = PAGE_EXECUTE_READ + | PAGE_EXECUTE_READWRITE + | PAGE_EXECUTE_WRITECOPY + | PAGE_READONLY + | PAGE_READWRITE + | PAGE_WRITECOPY; for (auto* addr = region.data(); addr < region.data() + region.size();) { MEMORY_BASIC_INFORMATION mbi{}; if (!VirtualQuery(addr, &mbi, sizeof(mbi))) { @@ -50,7 +56,7 @@ namespace hat::process { if (mbi.State != MEM_COMMIT) { return false; } - if (!(mbi.Protect & (PAGE_EXECUTE_READ | PAGE_EXECUTE_READWRITE | PAGE_READONLY | PAGE_READWRITE))) { + if (!(mbi.Protect & readFlags)) { return false; } addr = static_cast(mbi.BaseAddress) + mbi.RegionSize;