本人最近在学习辅助开发,有没有大神帮忙看看我找到了阳光的静态地址和两层偏移,怎么能使用c++代码去实现修改阳光值,或者有没有c++相关的辅助教程,注意是c++,不是c语言,拜托大家了,下面是我自己写的,实现不了修改,看能否修改下或者提供下思路,谢谢 /* #include #include const DWORD sun_address = 0x2A9EC0; //阳光的静态地址 const int value1 = 0x768; //一级偏移 const int value2 = 0x5560;//二级偏移 using namespace std; int main () { // 获取程序的窗口句柄 HWND hwnd = FindWindowA ("MainWindow","植物大战僵尸杂交版v2.3.7 "); if (hwnd == NULL) { cout << "未找到游戏窗口,请检查是否开启游戏" << endl; } else { cout << "游戏窗口已找到,窗口显示十六进制为:" << (int)hwnd << endl; } // 获取程序的进程PID DWORD pid; DWORD pids = GetWindowThreadProcessId (hwnd,&pid); if (pid == NULL) { cout << "未找到游戏进程,请检查是否开启游戏" << endl; } else { cout << "游戏进程已找到,进程显示当前PID为:" << pid << endl; } // 获取程序的进程句柄 HANDLE process = OpenProcess (PROCESS_ALL_ACCESS,FALSE,pid); if (process == NULL) { cout << "进程句柄获取失败" << endl; } else { cout << "进程句柄获取成功,当前进程句柄为:" << (int) process << endl; } //计算阳光的实际地址 DWORD sunaddress = sun_address+value1+value2; //修改阳光数值 while (true) { int yangguang = 0; cout << "请输入阳光数值:"; cin >> yangguang; //开始修改阳光数值 int sun1 = 0; SIZE_T a = 0; BOOL aa = WriteProcessMemory (process, (LPVOID)sunaddress, &sun1, 4,&a); if (aa == 0) { cout << "修改阳光数值失败" << endl; } else { cout << "修改阳光数值成功" << endl; } //开始读取阳光数值 int sun2 = 0; SIZE_T b = 0; BOOL bb = ReadProcessMemory (process, (LPVOID)sunaddress, &sun2, 4, &b); if (bb == 0) { cout << "读取阳光数值失败" << endl; } else { cout << "读取阳光数值成功,当前阳光数值为:" << sun2 << endl; } } }
|