植物大战僵尸2010年度版C语言修改阳光数
运用工具:CE 句柄查看精灵v2.3
一.先用CE拿到我们需要的数据
1.附加
2.阳光数第一次搜索
首次搜索后有695个结果,阳光变后再筛选一次
现在阳光135
这个基址就是动态基址、
偏移与第一层基址【【007794F8】+00000868】+00005578
代码:
#include<stdio.h> #include<Windows.h> //007794F8+00000868+00005578 #define SUN 0X007794F8 #define SUNONE 0X868 #define SUNTWO 0X5578 int main(void) { DWORD PID = 0; HANDLE Process = 0; DWORD size = 0; int xiugai = 0; DWORD sun = SUN;//阳光基地址 DWORD sunvalue = 0;//阳光基地址值 DWORD sunone = SUNONE;//一级偏移 DWORD sunonevalue = 0;//一级偏移值 DWORD suntwo = SUNTWO;//二级偏移 DWORD suntwovalue = 0;//二级偏移值 HWND hwinmine = FindWindowW(NULL, L"Plants vs. Zombies GOTY ");//找到窗口 GetWindowThreadProcessId(hwinmine, &PID);//获取进程标识 Process = OpenProcess(PROCESS_ALL_ACCESS, 0, PID);//获取句柄 ReadProcessMemory(Process, (LPCVOID)sun, &sunvalue, sizeof(DWORD), &size);//获取基址 ReadProcessMemory(Process, (LPCVOID)(sunvalue + sunone), &sunonevalue, sizeof(DWORD), &size);//一级偏移获取 ReadProcessMemory(Process, (LPCVOID)(sunonevalue + suntwo), &suntwovalue, sizeof(DWORD), &size);//二级偏移获取,阳光值 printf("当前阳光值:%d,请输入修改阳光数", suntwovalue); scanf("%d", &xiugai); WriteProcessMemory(Process, (LPCVOID)(sunonevalue + suntwo), &xiugai, sizeof(DWORD), &size); CloseHandle(Process); system("pause"); return 0; }
结果图: