无法使用指针和偏移量获取正确的地址 我是C++初学者, 我试图在CS:GO中获得玩家的健康值,但我面临一些问题。使用CheatEngine,我发现playerbase是“client_panorama.dll”+0xCBD6B4,与运行状况值的偏移量是0x100。这很好,但是我有困难把它转换成C++。 我正在使用dll注入,但在我注入的dll中,我无法获得与引擎中相同的地址。 行政长官照片:

无法使用指针和偏移量获取正确的地址 我是C++初学者, 我试图在CS:GO中获得玩家的健康值,但我面临一些问题。使用CheatEngine,我发现playerbase是“client_panorama.dll”+0xCBD6B4,与运行状况值的偏移量是0x100。这很好,但是我有困难把它转换成C++。 我正在使用dll注入,但在我注入的dll中,我无法获得与引擎中相同的地址。 行政长官照片:,c++,pointers,dll,cheat-engine,C++,Pointers,Dll,Cheat Engine,我在几个论坛上寻找解决方案,但我没能找到。这是我迄今为止的代码尝试: DWORD dwClientBase = (DWORD)GetModuleHandleA((LPCSTR)"client_panorama.dll"); DWORD dwClientBaseOffset = 0xCBD6B4; DWORD dwOffset = 0x100; DWORD dwplayerBase = *(DWORD *)(dwClientBase + dwClientBaseOffset); 但是在这个尝试

我在几个论坛上寻找解决方案,但我没能找到。这是我迄今为止的代码尝试:

DWORD dwClientBase = (DWORD)GetModuleHandleA((LPCSTR)"client_panorama.dll");
DWORD dwClientBaseOffset = 0xCBD6B4;
DWORD dwOffset = 0x100;

DWORD dwplayerBase = *(DWORD *)(dwClientBase + dwClientBaseOffset);
但是在这个尝试中,我并没有得到和Cheatengine中相同的PlayerBase地址

背景:我不是想做黑客,而是想学习如何从真实游戏中提取信息。在未来,我想尝试为真正的游戏编程AIs,因此,如果你有更多的信息,而不仅仅是游戏的视觉输出,这是非常有帮助的

谢谢你的帮助,
Varsius

您的代码是正确的。如果代码执行正确,那么dwplayerBase将等于player对象的地址

如果要获取健康地址,则需要添加dwOffset。我相信你的困惑是因为你应该得到健康报告。要获得它,只需添加以下行:

DWORD healthAddr = dwplayerBase + dwOffset;

您忘了添加
dwOffset
,但在我们能够更好地帮助您之前,最好先显示真实案例中涉及的所有数字。