0

我正在阅读游戏的结构。然后我修改这个结构并将其写回(使用 RPM 和 WPM)。如果我写回整个结构,我会在我试图破解的游戏中崩溃。这就是为什么我只想写一个结构的一部分。如何做到这一点?(例如,浮动 r 直到浮动 b)

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);
4

1 回答 1

0

如果你只想写代表 r、g 和 b 的 3 个浮点数,你只想写 12 个字节,因为每个浮点数是 4 个字节。您想使用从r发光结构偏移量 0x4 处的成员变量开始的 12 个字节。

该代码相当于:

WriteProcessMemory(hProcess, (LPVOID)(GlowPointer + (Glowindex * 0x38)), (void*)(&GlowStructA + 4), 12, NULL);
于 2020-03-29T23:52:09.747 回答