角色基址: 0x00f1ded4
角色名称XX后得到偏移是 0x114
基址+0x114 得到的结果是角色的名称的地址还是名称的首地址呢?
如果是直接得到保存角色名称的地址的话我应该直接取出来就行了啊,但是取不出来,得到的是乱码。
所以我就有疑问,这个基址+0x114是不是只得到了这个名称的首地址,我还要把字符一个一个的取出来
角色名称XX后得到偏移是 0x114
基址+0x114 得到的结果是角色的名称的地址还是名称的首地址呢?
如果是直接得到保存角色名称的地址的话我应该直接取出来就行了啊,但是取不出来,得到的是乱码。
所以我就有疑问,这个基址+0x114是不是只得到了这个名称的首地址,我还要把字符一个一个的取出来
DWORD Pid;
::GetWindowThreadProcessId(hwnd,&Pid);
HANDLE processH=::OpenProcess(PROCESS_ALL_ACCESS,false,Pid);
DWORD byread;
DWORD dwbase=0x00f1ded4; //角色基址
DWORD dwPtr;
char c[100];
::ReadProcessMemory(processH,(LPVOID)dwbase,&dwPtr,sizeof(dwPtr),&byread);
::ReadProcessMemory(processH,(LPVOID)(dwPtr+0x114),(LPVOID)&c,sizeof(c),&byread); //+458得到的是血值
m_name=c;
UpdateData(false); //我的代码是这样的,游戏里面的角色名是“完美”
但是得到的乱码是显示在编辑框里 "孾?"
m_name=c; 这样只能获取第一个字母 l
char c[100]; 这个最好初始化一下
char c[100] = {0};然后打印出来
print("name = %s", c);