当前位置: 首页 > news >正文

植物大战僵尸外挂

#include <iostream>
#include <windows.h> 
using namespace std;
/*声明变量 */
HWND hand=NULL; //游戏窗口
DWORD pid=0;//游戏进程ID
HANDLE hProcess=NULL;//进程对象 
DWORD BaseValue=0;//游戏数据存放的基础值 
DWORD SunshineAddress=0x5560;//阳光内存变量名称(地址) 
DWORD MoneyAddress=0x28;//金币内存地址 
DWORD PlantsAddress=0x768;//植物内存地址 
DWORD ZombiesAddress=0x90;//僵尸内存地址 
/*声明方法/函数 */
bool startGame(); //初始化游戏数据 
bool initSunshine();//初始化阳光数据 
int getSunshineValue();//获取阳光值 
void setSunshineValue(int value);//设置阳光值 
void noCoolDown();//无冷却时间 
void noStop(); //免暂停 
int getMoney(); //获取金币
void setMoney(int value);//设置金币
bool initMoney();//初始化金币 
bool initZombies();//初始化 
bool killZombies(int index);//杀掉僵尸 
bool initPlants(); //初始化植物 
int setPlantsBlood(int index);//设置植物最大血量 
void allZombies();//全部僵尸出动 
int main(int argc, char** argv) {bool Result=false; Result=startGame();if(Result==false){return 0;}	initMoney();int money=getMoney();cout<<"金币:"<<money<<endl;	//初始化阳光 Result=initSunshine(); if(Result==false){return false;}	int value=getSunshineValue();cout<<"阳光值:"<<value<<endl;while(1){cout<<"输入1 充值 9999阳光"<<endl<<"输入2 秒杀全屏僵尸"<<endl<<"输入3 充值10000金币"<<endl;cout<<"输入4 种植无冷却"<<endl<<"输入5 返回不暂停"<<endl<<"输入6 僵尸恢复正常"<<endl<<"输入7 僵尸隐身"<<endl;cout<<"输入8 僵尸变黑"<<endl<<"输入9 设置植物无敌"<<endl<<"输入10 出动全部僵尸"<<endl; value=0;cin>>value;		if(value==1){initSunshine(); setSunshineValue(9999); cout<<"充值 9999阳光"<<endl;} else if(value==2){initZombies();// 0为正常 1为消失 2为变黑 3为秒杀killZombies(3); cout<<"秒杀全屏僵尸"<<endl;} else if(value==3){setMoney(10000);cout<<"充值10000金币"<<endl;} else if(value==4){noCoolDown(); cout<<"种植无冷却"<<endl;} else if(value==5){noStop();cout<<"不暂停"<<endl;}  else if(value==6){initZombies();// 0为正常 1为消失 2为变黑 3为秒杀killZombies(0); cout<<"僵尸恢复正常"<<endl;}  else if(value==7){initZombies();// 0为正常 1为消失 2为变黑 3为秒杀killZombies(1); cout<<"僵尸隐身"<<endl;}  else if(value==8){initZombies();// 0为正常 1为消失 2为变黑 3为秒杀killZombies(2); cout<<"僵尸变黑"<<endl;} else if(value==9){initPlants(); //初始化植物 setPlantsBlood(999);//设置植物最大血量 cout<<"植物无敌"<<endl;}else if(value==10){allZombies();} }	return 0;
}
bool startGame(){//查找电脑是否运行了植物大战僵尸hand= FindWindow("MainWindow","植物大战僵尸中文版");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 0; }cout<<"阳光数据:"<<value<<endl; 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 noStop(){cout <<"去掉暂停"<<endl; //无冷却时间代码DWORD base = 0x4502C0;//打开进程 获取所有操作权限DWORD pianyi = 0xC3;WriteProcessMemory(hProcess,(LPVOID)base,&pianyi,1,NULL); 
} 
bool initMoney(){DWORD _Address=BaseValue+0x82c; //一级偏移地址 DWORD _Value=0;bool Result= ReadProcessMemory(hProcess,        //读取哪一个进程 (LPVOID)_Address, //内存地址是多少 &_Value,    //读取数据放哪 4,   //数据存储长度 NULL    //实际读取的长度 );if(Result==false){cout<<"初始化金币地址失败";return false; }MoneyAddress=_Value+0x28;//二级偏移地址 return true;
}
int getMoney(){DWORD value=0;bool Result= ReadProcessMemory(hProcess,        //读取哪一个进程 (LPVOID)MoneyAddress, //金币内存地址 &value,    //读取数据放哪 4,   //数据存储长度 NULL    //实际读取的长度 );if(Result==false){cout<<"获取金币数据失败";return 0; }cout<<"金币数据:"<<value<<endl; return  (int)value;	
}
void setMoney(int value){WriteProcessMemory(hProcess,(LPVOID)MoneyAddress,&value,4,NULL); 
} bool initZombies(){//僵尸 DWORD _Address=BaseValue+0x768; //一级偏移地址 DWORD _Value=0;bool Result= ReadProcessMemory(hProcess,        //读取哪一个进程 (LPVOID)_Address, //内存地址是多少 &_Value,    //读取数据放哪 4,   //数据存储长度 NULL    //实际读取的长度 );if(Result==false){cout<<"初始化僵尸地址失败";return false; }ZombiesAddress=_Value+0x90;//二级偏移地址 Result= ReadProcessMemory(hProcess,        //读取哪一个进程 (LPVOID)ZombiesAddress, //内存地址是多少 &_Value,    //读取数据放哪 4,   //数据存储长度 NULL    //实际读取的长度 );if(Result==false){cout<<"僵尸二次偏移失败";return false; }ZombiesAddress= _Value; 	return true;
}
bool killZombies(int index){	// 0为正常 1为消失 2为变黑 3为秒杀//不确定僵尸的个数  就从-100 ~ 100  寻找200个僵尸的内存地址  for(int i=-100;i<100;i++){DWORD _address=ZombiesAddress+0x28+i*0x15c;DWORD _Value=0; bool Result= ReadProcessMemory(hProcess,        //读取哪一个进程 (LPVOID)_address, //内存地址是多少 &_Value,    //读取数据放哪 4,   //数据存储长度 NULL    //实际读取的长度 );if(Result==false){cout<<"僵尸血量获取失败";continue;}if(_Value<100){ // 这里要判断,否则写入其他地址会,游戏会崩溃   100以内的数据表示僵尸的各种状态 			WriteProcessMemory(hProcess,(LPVOID)_address,&index,4,NULL); }else if(_Value<1000){cout<< "疑似僵尸血量:"<<_Value<< endl;} }	return true;
} bool initPlants(){DWORD _Address=BaseValue+0x768; //一级偏移地址 DWORD _Value=0;bool Result= ReadProcessMemory(hProcess,        //读取哪一个进程 (LPVOID)_Address, //内存地址是多少 &_Value,    //读取数据放哪 4,   //数据存储长度 NULL    //实际读取的长度 );if(Result==false){cout<<"初始化植物地址失败";return false; }PlantsAddress=_Value+0xbc;//二级偏移地址 Result= ReadProcessMemory(hProcess,        //读取哪一个进程 (LPVOID)PlantsAddress, //内存地址是多少 &_Value,    //读取数据放哪 4,   //数据存储长度 NULL    //实际读取的长度 );if(Result==false){cout<<"植物二次偏移失败";return false; }PlantsAddress= _Value; return true;
}
int setPlantsBlood(int index){//不确定个数  就从-100 ~ 100  寻找200个植物的内存地址  for(int i=-100;i<100;i++){DWORD value=0;bool Result= ReadProcessMemory(hProcess,        //读取哪一个进程 (LPVOID)(PlantsAddress+0x44+(i*0x14c)), //植物内存地址 &value,    //读取数据放哪 4,   //数据存储长度 NULL    //实际读取的长度 );if(Result==false){cout<<"当前血量数据失败";continue;}if(value<100){ // 这里要判断,否则写入其他地址会,游戏会崩溃   			WriteProcessMemory(hProcess,(LPVOID)(PlantsAddress+0x44+(i*0x14c)),&index,4,NULL); }else{cout<< "疑似植物血量:"<<value<< endl;} }return  1;	
} void allZombies(){//全部僵尸出动//倒计时机制  当倒计时为1的时候,所有的僵尸全部出动//时间不停 -1  当为0的时候,僵尸不出动DWORD base = 0x413E45;DWORD value = 0xE9FADA2C006690;WriteProcessMemory(hProcess,(LPVOID)base,&value,1,NULL); DWORD base1 = 0x6E1944;DWORD value1 = 0xC7879C5500000100000083879C550000FFE9363E63F6;WriteProcessMemory(hProcess,(LPVOID)base1,&value1,1,NULL); Sleep(500);value = 0x83879c660000FF;WriteProcessMemory(hProcess,(LPVOID)base,&value,1,NULL); value1 = 0x00;WriteProcessMemory(hProcess,(LPVOID)base1,&value1,1,NULL); }

  

http://www.sczhlp.com/news/74319/

相关文章:

  • ios使用HTTP代理的教程(需连wifi模式)
  • 备战软考2
  • 免费制作自己的网站长移动网站建站
  • 大学《网站开发与应用》试题自己的公司怎么做网站
  • 盘锦做网站企业高埗网站建设
  • 摄影创意网站注册公司需要费用吗
  • 一般网站建设需求有哪些多少钱一个网站
  • 建视频网站需要多大空间成都线上推广平台
  • 图书馆网站开发需求分析云南省建设工程造价信息网
  • 做婚礼效果图的网站有哪些自主建站平台
  • HCIA回顾—7 免费ARP以及ARP代理
  • 随机点名3
  • oa做软件还是网站成都网站设计制作
  • 做的网站怎么查看点击率桂林旅游
  • 社交网络服务网站主播网站开发
  • asp做微网站网站建设领导小组
  • 自助建手机网站免费巴中做网站的公司
  • zlmediakit扩展支持HTTP图片流协议输出
  • 理想汽车智驾方案介绍 4 | World model + 强化学习重建自动驾驶交互环境
  • 一种低于根号 n 复杂度的块状链表
  • 网站模板怎样使用芗城网站建设公司
  • 免费com网站域名注册网站开发设计的源码
  • 上海专业网站建站公司python网站开发案例
  • 做神马网站优化机关网站建设 方案
  • linux用.net做网站html5网站开发需要框架吗
  • 企业网站空间费用一年多少seo网站基础建设
  • 做汽车团购的网站营销软文范例大全300
  • 企业网站建设哪家优惠建筑工程分包平台
  • 未来做哪些网站能致富微网站营销是什么
  • world做网站怎么做连接门户网站 费用