//////////////////////////////////////////////////////////// //~ @hookimpl Memory allocation //- Reserve void *ReserveMemory(u64 size) { void *ptr = VirtualAlloc(0, size, MEM_RESERVE, PAGE_NOACCESS); return ptr; } void ReleaseMemory(void *address) { VirtualFree(address, 0, MEM_RELEASE); } //- Commit void *CommitMemory(void *address, u64 size) { void *ptr = VirtualAlloc(address, size, MEM_COMMIT, PAGE_READWRITE); return ptr; } void DecommitMemory(void *address, u64 size) { VirtualFree(address, size, MEM_DECOMMIT); } //- Protect void SetMemoryReadonly(void *address, u64 size) { DWORD old; VirtualProtect(address, size, PAGE_READONLY, &old); } void SetMemoryReadWrite(void *address, u64 size) { DWORD old; VirtualProtect(address, size, PAGE_READWRITE, &old); }