植物大战僵尸外挂2

#include <iostream>
#include <windows.h>
using namespace std;
/*声明变量*/
HWND hand=NULL;
DWORD pid=0;
HANDLE hProcess=NULL;
DWORD BaseValue=0;
DWORD SunshineAddress;
/*声明方法/函数 */


bool startGame();
bool initSunshine();
int getSunshineValue();
void setSunshineValue(int value);
void noCoolDown();
void zhu();
int main(int argc, char** argv) {
system("cls");
cout<<"请选择你要干的事情"<<endl;
cout<<"1.充值阳光"<<endl;
cout<<"2.无冷却"<<endl;
cout<<"3.退出系统"<<endl;
do{

bool Result=false;
Result=startGame();
if(Result==false){
system("start C:\Users\Administrator\Desktop\植物大战僵尸1电脑版\PlantsVsZombies.exe");
Sleep(3*1000);
}else{
break;
}

}while(true);
int zhu;
cin>>zhu;

//switch 退出系统
while(1){
//主界面

switch(zhu){
case 1:
int sun_zhi;
cout<<"请输入充值阳光的数目:";
initSunshine();
getSunshineValue();
cin>>sun_zhi;
setSunshineValue(sun_zhi);
break;
case 2:
noCoolDown();
break;
case 3:
break;
}
}

return 0;
}


bool startGame(){
//查找电脑是否运行了植物大战僵尸
hand=FindWindow("MainWindow","植物大战僵尸中文版");
//cout<<hand<<endl;
if(hand==NULL){
cout<<"游戏没有运行";
return false;
}
//cout<<"窗口:"<<hand<<endl;
GetWindowThreadProcessId(hand,&pid);
if(pid==0){
cout<<"无法找到植物大战僵尸进程";
return false;
}
//cout<<"进程:"<<pid<<endl;
hProcess=OpenProcess(PROCESS_ALL_ACCESS,false,pid);
if(hProcess==NULL){
cout<<"无法打开进程"<<endl;
return false;
}
//cout<<"打开进程"<<hProcess<<endl;
DWORD BaseAddress=0x006A9EC0; //获取游戏数据的基础地址
bool Result=ReadProcessMemory(
hProcess,//读取哪一个进程
(LPVOID)BaseAddress,//内存地址是多少
&BaseValue,
4,//数据存储长度
NULL//实际读取的长度
);
if(Result==false){
cout<<"初始基础地址失败";
return false;
}
return true;
}

//初始化阳光地址———寻找真实的阳光地址
bool initSunshine(){
DWORD _Address=BaseValue+0x768;//一级偏移地址
DWORD _Value=0;
bool Result= ReadProcessMemory(
hProcess, //读取哪一个进程
(LPVOID)_Address,//内存地址是多少
&_Value, //读取数据在哪
4, //数据存储长度
NULL //实际读取的长度
);
if(Result==false){
cout<<"初始化阳光地址失败";
return false;
}
SunshineAddress=_Value+0x5560;
return true;
}
//获取阳光值
int getSunshineValue(){
//阳光内存变量的真正名称
DWORD value=0;
bool Result= ReadProcessMemory(
hProcess, //读取哪一个进程
(LPVOID)SunshineAddress,//阳光内存地址
&value, //读取数据在哪
4, //数据存储长度
NULL //实际读取的长度
);
if(Result==false){
cout<<"初始化阳光地址失败";
return false;
}
return (int)value;
}
//设置阳光值
void setSunshineValue(int value){
WriteProcessMemory(hProcess,(LPVOID)SunshineAddress,&value,4,NULL);
}
void noCoolDown(){
cout<<"种植无冷却"<<endl;
//无冷却时间代码
DWORD base=0x00488e73;
//打开进程
DWORD pianyi=0x80;
WriteProcessMemory(hProcess,(LPVOID)base,&pianyi,1,NULL);
}
void zhu(){
cout<<"请选择你要干的事情"<<endl;
cout<<"1.充值阳光"<<endl;
cout<<"2.无冷却"<<endl;
cout<<"3.退出系统"<<endl;
}

  

posted @ 2023-12-23 09:35  最后一个还有我  阅读(45)  评论(0)    收藏  举报