蓝枫冰笛🌴 parkour烨
未来的我是什么样子呢?
关注数: 332 粉丝数: 793 发帖数: 31,327 关注贴吧数: 29
被植物大战僵尸折磨了五六个小时的我,请教一下大佬吧还是 代码如下,错误在DWORD ret哪一样,也就是用writeprocessmemory返回值一直是0不知道为什么,代码是照着网上的思路,基址也没错,不知道为什么会这样,有没有大佬复制一下代码运行看看,感激不尽。 #include<stdio.h> #include<stdlib.h> #include<Windows.h> char a; HWND hwnd; DWORD pid; HANDLE hProcess = 0; void main() { printf("---------------植物大战僵尸辅助---------------\n"); printf("a:获取游戏窗口进程,b:修改阳光值,c:退出辅助\n"); while (1) { a = getchar(); if (a == 'c' || a == 'C') { printf("已退出辅助\n"); Sleep(200); break; } if (a == 'A' || a == 'a') { hwnd = FindWindowA("MainWindow", "植物大战僵尸中文版"); hProcess = OpenProcess(PROCESS_ALL_ACCESS,FALSE, pid); if (hwnd == NULL) { printf("游戏未运行,请先打开游戏再运行本辅助\n"); } else { printf("获取游戏窗口句柄成功\n"); } DWORD hProcess = GetWindowThreadProcessId(hwnd, &pid); if (hProcess == 0) { printf("获取游戏进程失败\n"); } else { printf("获取游戏进程成功,PID为 : %d\n", hProcess); } } if (a == 'B' || a == 'b') { if (hwnd == 0) { printf("还未获取游戏进程!\n"); } else { DWORD temp,sunny; DWORD base = 0x006a9ec0;//静态基址 DWORD m_offset1 = 0x768;//一级偏移 DWORD m_offset2 = 0x5560;//二级偏移 //base->temp //temp+offset1->temp //temp=temp+offset2 ReadProcessMemory(hProcess, (LPVOID)base, &temp, 4, NULL); ReadProcessMemory(hProcess, (LPVOID)(temp + m_offset1), &temp, 4, NULL); temp += m_offset2; printf("请输入修改的阳光值为:\n"); scanf_s("%d", &sunny); DWORD ret = WriteProcessMemory(hProcess, (LPVOID)temp, &sunny, 4, NULL); if (ret == 0) { printf("修改失败\n"); } else { printf("修改成功\n"); } } } } return 0; system("pause"); }
1 下一页