日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

自己动手制作植物大战僵尸简单修改器

發(fā)布時間:2023/12/16 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 自己动手制作植物大战僵尸简单修改器 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

自己動手制作植物大戰(zhàn)僵尸簡單修改器

  • 獲取植物大戰(zhàn)僵尸進程
  • 改變陽光數(shù)
  • 改變金幣數(shù)
  • CD循環(huán)清零
  • 運行結果

獲取植物大戰(zhàn)僵尸進程

我用的是植物大戰(zhàn)僵尸漢化第二版,基址是0x006A9EC0
編譯器是VC++6.0
(注:未經(jīng)說明且不是函數(shù)定義的代碼添加于按鈕處)
聲明基址

const int baseaddr = 0x006A9EC0;

首先是獲取植物大戰(zhàn)僵尸進程

PROCESSENTRY32 pe32;pe32.dwSize = sizeof(pe32);HANDLE hProcessSnap = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);BOOL have_more = ::Process32First(hProcessSnap,&pe32);int processid = -1;while(have_more){if(!_tcscmp(pe32.szExeFile,_T("PlantsVsZombies.exe"))){processid = pe32.th32ProcessID;break;}have_more = ::Process32Next(hProcessSnap,&pe32);}if(processid == -1){AfxMessageBox("找不到游戲進程");ExitThread(-1);}CloseHandle(hProcessSnap);HANDLE hprocess = ::OpenProcess(PROCESS_ALL_ACCESS,FALSE,processid);

hprocess就是植物大戰(zhàn)僵尸進程了

改變陽光數(shù)

接著就要改變陽光數(shù)了,陽光地址是0x006A9EC0 + 0x786 + 0x5560
(即0x006A9EC0的值加上0x786后作為地址,取值加0x5560為陽光地址,之后的不另做解釋)

CString ssun;DWORD sun = 0;m_edit1.GetWindowText(ssun);//獲取增加陽光數(shù)int addr;//改變陽光數(shù)::ReadProcessMemory(hprocess,(LPVOID)(baseaddr),&addr,4,0);::ReadProcessMemory(hprocess,(LPVOID)(addr+0x768),&addr,4,0);::ReadProcessMemory(hprocess,(LPVOID)(addr+0x5560),&sun,4,0);sun += atoi(ssun);::WriteProcessMemory(hprocess,(LPVOID)(addr+0x5560),&sun,4,0);

改變金幣數(shù)

再其次是改變金幣數(shù),金幣數(shù)地址是0x006A9EC0 + 0x82c+ 0x28
(注:實際金幣數(shù)為該地址的值乘上10后的結果)

CString smoney;DWORD money = 0;m_edit2.GetWindowText(smoney);//改變金幣數(shù)::ReadProcessMemory(hprocess,(LPVOID)(baseaddr),&addr,4,0);::ReadProcessMemory(hprocess,(LPVOID)(addr+0x82c),&addr,4,0);::ReadProcessMemory(hprocess,(LPVOID)(addr+0x28),&money,4,0);money += atoi(smoney)/10;::WriteProcessMemory(hprocess,(LPVOID)(addr+0x28),&money,4,0);

CD循環(huán)清零

再接著是CD循環(huán)清零,每個格子CD地址0x006A9EC0 + 0x768+ 0x144 +(0x70+0x50i) (0<=i<10)
(注:(0x70+0x50i)表示括號內為直接運算即可)
先在構造函數(shù)處添加如下代碼

hthread = INVALID_HANDLE_VALUE;

再在按鈕事件添加如下代碼

//判斷是否啟動/終止CD循環(huán)清零if(m_check1.GetCheck() == 1 && hthread == INVALID_HANDLE_VALUE){hthread = CreateThread(NULL,0,hackthread,&hprocess,0,NULL);}else if(m_check1.GetCheck() != 1 && hthread != INVALID_HANDLE_VALUE){TerminateThread(hthread,0);hthread = INVALID_HANDLE_VALUE;} DWORD _stdcall hackthread(LPVOID lpparam) {const int baseaddr = 0x006A9EC0;HANDLE hprocess = *((HANDLE*)lpparam);int value = 1;int addr;while(true){ReadProcessMemory(hprocess,(LPVOID)(baseaddr),&addr,4,0);ReadProcessMemory(hprocess,(LPVOID)(addr+0x768),&addr,4,0);ReadProcessMemory(hprocess,(LPCVOID)(addr+0x144),&addr,4,0);for(int i = 0;i < 10;i++)//利用循環(huán)每次加50,循環(huán)10次實現(xiàn)10個方框無冷卻{WriteProcessMemory(hprocess,(LPVOID)(addr+0x70+(0x50)*i),&value,4,0);}}return 0; }

運行結果

總結

以上是生活随笔為你收集整理的自己动手制作植物大战僵尸简单修改器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。