2#include <unordered_map>
3#include "..\Dota2Patcher.h"
19 template<
typename T,
typename N>
23 if constexpr (std::is_pointer_v<N>)
25 else if constexpr (std::is_integral_v<N>)
40 LOG::ERR(
"(absolute_address) Unsupported instruction type");
46 LOG::ERR(
"(absolute_address) ReadProcessMemory failed: {}",
GetLastError());
55 template<
typename T,
typename N>
59 if constexpr (std::is_pointer_v<N>)
61 else if constexpr (std::is_integral_v<N>)
77 template<
typename T,
typename N>
86 LOG::ERR(
"(read_memory) Failed to read memory: {}",
GetLastError());
91 LOG::ERR(
"(read_memory) Partial read at {}", (
void*)
address);
98 template<
typename T,
typename N>
102 LOG::ERR(
"(write_memory) Failed to write memory at {}: {}", (
void*)
address,
GetLastError());
107 LOG::ERR(
"(write_memory) Partial write at {}", (
void*)
address);
ASM_TYPE
Definition Enums.h:36
PATCH_TYPE
Definition Enums.h:28
static optional< T > read_memory(const N &address)
Definition Memory.h:78
static bool is_valid_ptr(const T &ptr)
Definition Memory.h:136
static bool patch(const uintptr_t &patch_addr, const PATCH_TYPE patch_type, const optional< string > &replace_str=nullopt)
Definition Memory.cpp:125
static optional< string > read_string(const T &address, const size_t max_length=64)
Definition Memory.h:125
static optional< uintptr_t > pattern_scan(const string &target_module, const string &target_pattern)
Definition Memory.cpp:25
static bool load_modules(const DWORD process_ID)
Definition Memory.cpp:73
static int count_vms(const T &vmt)
Definition Memory.h:150
static optional< T > absolute_address(const N &instruction_ptr, const ASM_TYPE instr_type=ASM_TYPE::LEA)
Definition Memory.h:20
static bool write_memory(const N &address, const T &value)
Definition Memory.h:99
static optional< T > virtual_function(const N &vmt, const int function_index)
Definition Memory.h:56
static std::unordered_map< string, ModuleInfo > loaded_modules
Definition Memory.h:167
static void write_string(const T &address, const string &text)
Definition Memory.h:115
static HANDLE get_handle()
Definition ProcessHandle.h:53
HMODULE hmodule
Definition Memory.h:12
uintptr_t start_address
Definition Memory.h:9
size_t region_size
Definition Memory.h:11
uintptr_t end_address
Definition Memory.h:10