3-实现游戏人物属性显示 实现游戏人物属性显示 1.OpenProcess函数 获取某个进程的权限 HANDLEWINAPIOpenProcess( _In_ DWORD dwDesiredAccess, //读取权限 _In_ BOOL bInheritHandle, //是否继承 _In_ DWORD dwProcessId //想要读取的PID );//exampleHANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS,FALSE,Pid); 2.ReadProcessMemory函数 获取某个进程的内存 返回值: TRUE 成功 FALSE 失败 BOOLWINAPIReadProcessMemory( _In_ HANDLE hProcess, //要读取的句柄 _In_ LPCVOID lpBaseAddress, //要读取的地址 _Out_writes_bytes_to_(nSize,*lpNumberOfBytesRead) LPVOID lpBuffer, //指向接收数据的缓冲区 _In_ SIZE_T nSize, //读取大小 _Out_opt_ SIZE_T* lpNumberOfBytesRead //接收到的数据大小(不需要就置NULL) ); 3.实际应用 #include<iostream>#include<Windows.h>using namespace std;int main(){ DWORD Pid; SIZE_T readByte;linput: cout << "Please input the game ID:"; cin >> Pid; HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS,FALSE,Pid); long hp{}; if (hProcess == NULL) { cout << "打开失败"; goto linput; } BOOL bRet = ReadProcessMemory(hProcess, (LPCVOID)0x4CEF18, (LPVOID)&hp, sizeof(hp), &readByte); if (bRet) { cout << "HP:" << hp << endl; } else { cout << "游戏内存读取失败" << endl; }} 发布于 2023-07-22