1
0
mirror of synced 2025-02-01 04:15:50 +01:00

Add Helper function for Reading/Writing memory if necessary

This commit is contained in:
Aaron M 2020-05-02 12:19:38 +12:00
parent 9ff3e8a957
commit be5131b0d2
2 changed files with 85 additions and 0 deletions

View File

@ -0,0 +1,70 @@
#include <Windows.h>
#include "Helper.h"
typedef unsigned char U8;
// reading/writing memory
LPVOID Helpers::GetTranslatedOffset(INT_PTR offset)
{
return reinterpret_cast<LPVOID>((INT_PTR)GetModuleHandle(NULL) + offset);
}
UINT8 Helpers::ReadByte(INT_PTR offset, bool isRelativeOffset)
{
UINT8 val = 0;
SIZE_T read;
LPVOID trueOffset = (isRelativeOffset ? GetTranslatedOffset(offset) : (LPVOID)offset);
ReadProcessMemory(GetCurrentProcess(), trueOffset, &val, sizeof(UINT8), &read);
return val;
}
float Helpers::WriteFloat32(INT_PTR offset, float val, bool isRelativeOffset)
{
SIZE_T written;
LPVOID trueOffset = (isRelativeOffset ? GetTranslatedOffset(offset) : (LPVOID)offset);
WriteProcessMemory(GetCurrentProcess(), trueOffset, &val, sizeof(float), &written);
return val;
};
UINT8 Helpers::WriteByte(INT_PTR offset, UINT8 val, bool isRelativeOffset)
{
SIZE_T written;
LPVOID trueOffset = (isRelativeOffset ? GetTranslatedOffset(offset) : (LPVOID)offset);
WriteProcessMemory(GetCurrentProcess(), trueOffset, &val, sizeof(UINT8), &written);
return val;
}
INT_PTR Helpers::WriteIntPtr(INT_PTR offset, INT_PTR val, bool isRelativeOffset)
{
SIZE_T written;
LPVOID trueOffset = (isRelativeOffset ? GetTranslatedOffset(offset) : (LPVOID)offset);
WriteProcessMemory(GetCurrentProcess(), trueOffset, &val, sizeof(INT_PTR), &written);
return val;
};
int Helpers::ReadInt32(INT_PTR offset, bool isRelativeOffset)
{
int val = 0;
SIZE_T read;
LPVOID trueOffset = (isRelativeOffset ? GetTranslatedOffset(offset) : (LPVOID)offset);
ReadProcessMemory(GetCurrentProcess(), trueOffset, &val, sizeof(int), &read);
return val;
}
INT_PTR Helpers::ReadIntPtr(INT_PTR offset, bool isRelativeOffset)
{
SIZE_T read;
LPVOID trueOffset = (isRelativeOffset ? GetTranslatedOffset(offset) : (LPVOID)offset);
INT_PTR val;
ReadProcessMemory(GetCurrentProcess(), trueOffset, &val, sizeof(INT_PTR), &read);
return val;
};
float Helpers::ReadFloat32(INT_PTR offset, bool isRelativeOffset)
{
float val = 0.0f;
SIZE_T read;
LPVOID trueOffset = (isRelativeOffset ? GetTranslatedOffset(offset) : (LPVOID)offset);
ReadProcessMemory(GetCurrentProcess(), trueOffset, &val, sizeof(float), &read);
return val;
};

View File

@ -0,0 +1,15 @@
#pragma once
#include <Windows.h>
class Helpers {
public:
// reading/writing memory
LPVOID GetTranslatedOffset(INT_PTR offset);
int ReadInt32(INT_PTR offset, bool isRelativeOffset);
UINT8 ReadByte(INT_PTR offset, bool isRelativeOffset);
float WriteFloat32(INT_PTR offset, float val, bool isRelativeOffset);
UINT8 WriteByte(INT_PTR offset, UINT8 val, bool isRelativeOffset);
INT_PTR WriteIntPtr(INT_PTR offset, INT_PTR val, bool isRelativeOffset);
INT_PTR ReadIntPtr(INT_PTR offset, bool isRelativeOffset);
float ReadFloat32(INT_PTR offset, bool isRelativeOffset);
};