#include <stdio.h>
#include <windows.h>
#include <string.h>
#include <tlhelp32.h>
HANDLE hGameHandle;
HANDLE GetHandle(char *sProName);
void main()
{
hGameHandle=GetHandle("PlantsVsZombies.exe");
DWORD dwBaseAddr=0x006A9EC0;
//::TerminateProcess(hGameHandle,0);
DWORD dwAdd1,dwAdd2,money;
::ReadProcessMemory(hGameHandle,(LPVOID)dwBaseAddr,&dwAdd1,sizeof(DWORD),NULL);
dwAdd1=dwAdd1+0x768;
::ReadProcessMemory(hGameHandle,(LPVOID)dwAdd1,&dwAdd2,sizeof(DWORD),NULL);
dwAdd2=dwAdd2+0x5560;
::ReadProcessMemory(hGameHandle,(LPVOID)dwAdd2,&money,sizeof(DWORD),NULL);
printf("%d",money);
DWORD a=100000;
::WriteProcessMemory(hGameHandle,(LPVOID)dwAdd2,&a,sizeof(DWORD),NULL);
}
HANDLE GetHandle(char *sProName)
{
PROCESSENTRY32 pe32;
pe32.dwSize=sizeof(pe32);
HANDLE hProcessSnap=::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if(hProcessSnap==INVALID_HANDLE_VALUE)
{
printf("CreatToolhelpSnapshot fail/n");
}
BOOL bMore=::Process32First(hProcessSnap,&pe32);
while(bMore)
{
if(strcmp(pe32.szExeFile,sProName)==0)
{
HANDLE hProcess=::OpenProcess(PROCESS_ALL_ACCESS,FALSE,pe32.th32ProcessID);
//TerminateProcess(hProcess,0);
return hProcess;
}
bMore=::Process32Next(hProcessSnap,&pe32);
}
}