mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2025-05-16 11:31:19 +00:00
29 lines
657 B
C++
29 lines
657 B
C++
#include "memory.h"
|
|
|
|
#include <Windows.h>
|
|
|
|
void hijack::memory::Protect(size_t address, size_t size, std::function<void()> function) {
|
|
DWORD oldProtect;
|
|
VirtualProtect((void*)address, size, PAGE_EXECUTE_READWRITE, &oldProtect);
|
|
|
|
function();
|
|
|
|
VirtualProtect((void*)address, size, oldProtect, &oldProtect);
|
|
}
|
|
|
|
void* hijack::memory::Read(size_t address, size_t size) {
|
|
void* returnData = malloc(size);
|
|
|
|
Protect(address, size, [&]() {
|
|
memcpy(returnData, (void*)address, size);
|
|
});
|
|
|
|
return returnData;
|
|
}
|
|
|
|
void hijack::memory::Patch(size_t address, size_t size, void* data) {
|
|
Protect(address, size, [&]() {
|
|
memcpy((void*)address, data, size);
|
|
});
|
|
}
|