C++ WriteProcessMemory() - записать часть структуры

Я читаю структуру игры. Затем я модифицирую эту структуру и запишу ее обратно (используя RPM и WPM). Если я напишу всю структуру, я получу сбои в игре, которую пытаюсь взломать. Вот почему я хочу написать только часть структуры. Как этого достичь? (Напр. Поплавок г до поплавка б)

struct GlowStruct
{
void* m_pEntity;
float r;
float g;
float b;
float m_flGlowAlpha;
unsigned char _0x0014[16];
bool m_bShouldGlow;
bool m_bUnknown;
bool m_bFullBloomRender;
unsigned char _0x0027[13];
}GlowStructA;

// Where I'm writing to. I read my struct from the same place.
WriteProcessMemory(hProcess, (LPVOID)(GlowPointer + (Glowindex * 0x38)), &GlowStructA, sizeof(GlowStruct), NULL);

0 ответов

Если вы хотите записать только 3 числа с плавающей запятой, которые представляют r, g и b, вы хотите записать только 12 байтов, потому что каждое число с плавающей запятой составляет 4 байта. Вы хотите использовать 12 байтов, начиная с переменной-членаr который находится по смещению 0x4 вашей структуры свечения.

Этот код соответствует следующему:

WriteProcessMemory(hProcess, (LPVOID)(GlowPointer + (Glowindex * 0x38)), (void*)(&GlowStructA + 4), 12, NULL);
Другие вопросы по тегам