fix(inject): set read_image_file_exec_options to 0

This commit is contained in:
es3n1n
2025-05-13 17:10:36 +09:00
parent 4c24a20988
commit 33202c4c8f
3 changed files with 37 additions and 0 deletions

View File

@@ -0,0 +1,31 @@
#pragma once
#include <stdexcept>
#include <Windows.h>
#pragma pack(push, 1)
namespace native {
class PEB {
public:
std::uint8_t inherited_address_space;
std::uint8_t read_image_file_exec_options;
/// - we don't need other fields
};
static_assert(offsetof(PEB, read_image_file_exec_options) == 1);
inline PEB* get_peb() {
static auto function = reinterpret_cast<PEB* (*)()>(GetProcAddress(GetModuleHandleA("ntdll.dll"), "RtlGetCurrentPeb"));
if (function == nullptr) {
throw std::runtime_error("no RtlGetCurrentPeb");
}
static auto result = function();
if (result == nullptr) [[unlikely]] {
throw std::runtime_error("no peb");
}
return result;
}
} // namespace native
#pragma pack(pop)