
植物大战僵尸修改器源代码,程序使用MFC开发,学习查找窗口,读写内存等、定时操作功能
开发工具:VS2008(MFC)
主要代码如下:
void C植物大战修改器Dlg::OnBnClickedButton2() { // TODO: 在此添加控件通知处理程序代码 if(!bRun) { AfxMessageBox(L"请先打开游戏"); return; } GetWindowThreadProcessId(m_GameHWND,&m_ProcessId); HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS,FALSE,m_ProcessId); DWORD tmp; int nBase=0; int nSun=0; int nMoney=0; ReadProcessMemory(hProcess,ZW_BASE,&nBase,sizeof(int),&tmp); ReadProcessMemory(hProcess,(int *)(nBase+0x768),&nBase,sizeof(int),&tmp); ReadProcessMemory(hProcess,(int *)(nBase+0x5560),&nSun,sizeof(int),&tmp); ReadProcessMemory(hProcess,ZW_BASE,&nBase,sizeof(int),&tmp); ReadProcessMemory(hProcess,(int *)(nBase+0x82C),&nMoney,sizeof(int),&tmp); ReadProcessMemory(hProcess,(int *)(nMoney+0x28),&nMoney,sizeof(int),&tmp); CString sSun; sSun.Format(L"%d",nSun); GetDlgItem(IDC_EDIT2)->SetWindowTextW((LPCTSTR)sSun); CString sMoney; sMoney.Format(L"%d",nMoney); GetDlgItem(IDC_EDIT3)->SetWindowTextW((LPCTSTR)sMoney); CloseHandle(hProcess); } void C植物大战修改器Dlg::OnBnClickedButton3() { if(!bRun) { AfxMessageBox(L"请先打开游戏"); return; } GetWindowThreadProcessId(m_GameHWND,&m_ProcessId); HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS,FALSE,m_ProcessId); DWORD tmp; int nBase=0; int nMoney=0; int nSun= 0; CString sSun; CString sMoney; ReadProcessMemory(hProcess,ZW_BASE,&nBase,sizeof(int),&tmp); ReadProcessMemory(hProcess,(int *)(nBase+0x768),&nBase,sizeof(int),&tmp); GetDlgItem(IDC_EDIT2)->GetWindowTextW(sSun); nSun = _tstoi(LPCTSTR(sSun)); WriteProcessMemory(hProcess,(int *)(nBase+0x5560),&nSun,sizeof(int),&tmp); ReadProcessMemory(hProcess,ZW_BASE,&nBase,sizeof(int),&tmp); ReadProcessMemory(hProcess,(int *)(nBase+0x82C),&nBase,sizeof(int),&tmp); GetDlgItem(IDC_EDIT3)->GetWindowTextW(sMoney); nMoney = _tstoi(LPCTSTR(sMoney)); WriteProcessMemory(hProcess,(int *)(nBase+0x28),&nMoney,sizeof(int),&tmp); AfxMessageBox(L"修改成功!"); CloseHandle(hProcess); }