在类中存储内存内容 - C++

w00*_*w00 3 c++ memory pointers

我正在尝试为应用程序编写一个插件,并且我遇到了需要从内存中读取内容并将其存储在类中的位置.我得到了以下内容:

UserInfo = 0x9F9648 
UserInfoSize = 0x560
Run Code Online (Sandbox Code Playgroud)

这是内容存储位置的位置,我已经获得了以下类来存储它:

class CUserInfo
{
public:
    __int32 clientNum; //0x0000  
    __int32 Valid; //0x0004  
    char unknown8[4]; //0x0008
    char Name[16]; //0x000C  
    ... and some other properties
};
Run Code Online (Sandbox Code Playgroud)

问题是我不知道如何从地址位置获取内容并将其存储在类实例中.

任何人都知道怎么做?

C-F*_*C-F 5

您可以使用reinterpret_cast<>将整数地址转换为指向任何所需类型的指针,然后取消引用指针.

例如:

CUserInfo user_info;
user_info.clientNum = *(reinterpret_cast<__int32*>(0x9F9648));
Run Code Online (Sandbox Code Playgroud)

当然这是危险的做法.当您尝试访问任意内存地址时,您应该知道访问冲突和对齐错误.