植物大战僵尸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;
}

结果图:

经验分享 程序员 微信小程序 职场和发展