#include <bits/stdc++.h>
#include "windows.h"
#include "windowsx.h"
using namespace std;
int main()
{
//獲得窗口句柄
HWND gameWindow=FindWindow(NULL,"Plants vs. Zombies 1.2.0.1073 RELEASE");//通過窗口標題獲得句柄
if(gameWindow==NULL)
cout<<"獲得窗口失敗"<<endl;
else
cout<<"獲得窗口成功"<<endl;
//獲得目標進程ID
DWORD pid;//DWORD相當於void* 無類型指針
GetWindowThreadProcessId(gameWindow,&pid);//通過句柄獲得進程ID,並把ID的值傳遞給輸出參數pid
//獲得線程句柄
HANDLE hprocess=OpenProcess(PROCESS_ALL_ACCESS,0,pid);//通過進程ID打開進程
if(hprocess==NULL)
cout<<"打開進程失敗"<<endl;
else
cout<<"打開進程成功"<<endl;
//獲取目標線程基址
DWORD area;
int getData=ReadProcessMemory(hprocess,(void *)0x00199178,&area,4,NULL);//通過CE查找到目標基址是0x00199178
if(!getData)
cout<<"讀取基址數據失敗"<<endl;
else
cout<<"讀取基址數據成功"<<endl;
int sun=7625;//修改太陽的變量
//修改數據
int alterData=WriteProcessMemory(hprocess,(void *)(area+0x5578),&sun,4,0);//通過基址+偏移量獲得太陽數存放的準確地址
//關閉線程句柄
if(!alterData)
cout<<"修改失敗"<<endl;
else
cout<<"修改成功"<<endl;
CloseHandle(hprocess);
return 0;
}
版本不一樣的話 這段代碼窗口標題 基址 偏移量需要改,也就是Plants vs. Zombies 1.2.0.1073 RELEASE 0x00199178 0x5578窗口標題不用多說
基址 偏移量 我用的CE找的 有的版本偏移好多次
推薦一個用CE查找基址和偏移量的圖文教程點擊打開鏈接