首页 > 其他分享 >植物大战僵尸3.0

植物大战僵尸3.0

时间:2023-12-24 09:55:05浏览次数:22  
标签:僵尸 int void system 大战 bool 3.0 zhi DWORD

#include <iostream>
#include <windows.h>
using namespace std;
//声明变量
DWORD ZombiesAddress;
HWND hand = NULL;
DWORD pid = 0;
HANDLE hProcess = NULL;
DWORD BaseValue = 0;
DWORD SunshineAddress = 0;
DWORD MoneyshineAddress = 0;
void a();
void chushihua();
bool startGame();
bool initSunshine();
int getSunshineValue();
void setSunshineValue(int value);
bool initMoneyshine();
int getMoneyshineValue();
void setMoneyshineValue(int value);
void initCDshine();
void noCoolDown();
bool initZombies();
bool killZombies();
int main(){
    system("title 植物大战僵尸外挂程序");
    system("color 0B");
    do{
        bool Result = false;
        Result = startGame();
        if(Result==false){
            system(    "start C:/Users/Administrator/Desktop/植物大战僵尸1电脑版/PlantsVsZombies.exe");
            Sleep(3000);
        }else{
            break;
        }
    }while(true);
    int n;
    while(1){
        system("cls");
        chushihua();
        int zhi;
        cin>>n;
        switch(n){
            case 1:
                initSunshine();
                getSunshineValue();
                cout<<"请输入你要修改的阳光值:";
                cin>>zhi;
                setSunshineValue(zhi);
                cout<<"修改成功"<<endl;
                break;
            case 2:
                initMoneyshine();
                getMoneyshineValue();
                cout<<"请输入你要修改的金币值:";
                cin>>zhi;
                setMoneyshineValue(zhi);
                cout<<"修改成功"<<endl;
                break;
            case 3:
                noCoolDown();
                break;
            case 4:
                initZombies();
                killZombies();
                    break;
            case 5:
                a();
                break;
            case 6:
                system("pause"); 
                return 0;
        }
        system("pause"); 
    }
    return 0;
}
//免暂停 
void a(){
    //免暂停时间代码
    DWORD BASE = 0x4502C0;
    //打开进程
    DWORD pianyi = 0xC3;
    WriteProcessMemory(hProcess,(LPVOID)BASE,&pianyi,4,NULL);
}
void chushihua(){
    cout<<"植物大战僵尸外挂程序"<<endl
        <<"****1.修改阳光值****"<<endl
        <<"****2.修改金币值****"<<endl
        <<"****3.种植无冷却****"<<endl
        <<"****4.僵尸被秒杀****"<<endl
        <<"****5.程序免暂停****"<<endl
        <<"****6.关闭此外挂****"<<endl;
}
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<<"无法打开进程";
        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);
}
//寻找真实的金币地址
bool initMoneyshine(){
    DWORD _address = BaseValue+0x82c;//一级偏移地址 
    DWORD _value = 0;
    bool Result = ReadProcessMemory(hProcess,(LPVOID)_address,&_value,4,NULL);
    if(Result==false){
        cout<<"初始化金币地址失败";
        return false;
    }
    MoneyshineAddress = _value+0xac;//二级偏移地址 
    return true;
}
//获取金币值 
int getMoneyshineValue(){
    //金币存变量的真正名称
    DWORD Vvalue = 0;
    bool Result = ReadProcessMemory(hProcess,(LPVOID)MoneyshineAddress,&Vvalue,4,NULL);
    if(Result==false){
        cout<<"获取金币数据失败";
        return 0;
    } 
    cout<<"当前金币值:"<<Vvalue<<endl;
    return (int)Vvalue;
}
//修改金币值 
void setMoneyshineValue(int value){
    WriteProcessMemory(hProcess,(LPVOID)MoneyshineAddress,&value,4,NULL);
}
void noCoolDown(){
    //无冷却时间代码
    DWORD base = 0x00488e73;
    //打开进程
    DWORD PIANYI = 0x80;
    WriteProcessMemory(hProcess,(LPVOID)base,&PIANYI,1,NULL); 
    cout<<"种植无冷却"<<endl;
}
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;
    cout<<"僵尸地址:"<<ZombiesAddress<<endl;
    return true; 
}
bool killZombies(){
    for(int i=0;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;
        }
        int value=3;
        if(_Value<100){
            WriteProcessMemory(hProcess,(LPVOID)_address,&value,4,NULL);
        }else{
            cout<<"疑似僵尸血量:"<<_Value<<endl;
        }
    }
return true;
}     

 

标签:僵尸,int,void,system,大战,bool,3.0,zhi,DWORD
From: https://www.cnblogs.com/w6826301/p/17924072.html

相关文章

  • 植物大战僵尸2.0
    #include<iostream>#include<windows.h>usingnamespacestd;HWNDhand=NULL;DWORDpid=0;HANDLEhProcess=NULL;DWORDBaseValue=0;DWORDSunshineAddress;boolstartGame();//阳光boolinitSunshine();intgetSunshineValse();voidsetSunshineValue......
  • 如何看待拼多多大战京东和淘宝
    三年疫情后的第一年,好好市场一直不是很景气,今年的电商行业犹受冲击,京东和淘宝今年已经公开承认自身与拼多多之间的不足,作为后起之秀的拼多多已经在市值上超过了京东、淘宝(目前京东市值为431亿美元,目前淘宝市值500亿美元,拼多多为1970亿美元),如果单纯从市值上看拼多多已经是京东......
  • 植物大战僵尸
    #include<iostream>#include<windows.h>usingnamespacestd;/*声明变量*/HWNDhand=NULL;//游戏窗口DWORDpid=0;//游戏进程IDHANDLEhProcess=NULL;//进程对象DWORDBaseValue=0;//游戏数据存放的基础值DWORDSunshineAddress;//阳光内存变量名称(地址)/*声明方法/函数*......
  • linux系统僵尸进程处理
    查看僵尸进程[root@mac-25~]#toptop-19:04:11up177days,23:58,2users,loadaverage:15.18,21.64,22.02Tasks:1791total,2running,1347sleeping,0stopped,43zombie%Cpu(s):30.7us,5.9sy,0.0ni,57.7id,0.3wa,0.9hi,4.4si,0......
  • 强网杯2023 谍影重重3.0 wp
    参考文章:[使用主动探测方法识别U2hhZG93c29ja3M=(base64)服务-Phuker'sBlog]:https://phuker.github.io/posts/U2hhZG93c29ja3M=-active-probing.html(自行修改url中base64后的敏感词)题目描述:小明被我国抓获之后对所作所为供认不讳,在对他个人电脑监控的过程中,发现存在通......
  • 武汉星起航:亚马逊2024年五大战略发布,产品及服务再升级
    亚马逊在深圳举行的“2023年亚马逊跨境峰会”上,隆重发布了2024年五大业务战略,同时回顾了中国卖家在过去一年在亚马逊平台上的卓越成绩。数据显示,过去一年,亚马逊上销售额超过100万美金的中国卖家数量同比增长超过25%,销售额超过1000万美金的卖家数量同比增长接近30%,为中国卖家在全球......
  • 记录 | 报错:libssl-dev : 依赖: libssl3 (= 3.0.8-1ubuntu1.1) 但是 3.0.8-1ubuntu1.2
    ubuntu上安装libssl-dev失败的报错解决报错:下列软件包有未满足的依赖关系:libssl-dev:依赖:libssl3(=3.0.8-1ubuntu1.1)但是3.0.8-1ubuntu1.2正要被安装E:无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。想当然,ubuntu下使用如下命令安......
  • nacos 2.3.0 支持 java openjdk 22吗? 支持
    [nacos2.2.3支持jdk17吗?-SegmentFault思否](https://segmentfault.com/q/1010000044179850)renguoqiang@ubuntulenovo:~/gitee_base/nacos-server-2.3.0/bin$java找不到命令“java”,但可以通过以下软件包安装它:sudoaptinstalldefault-jre#version2:1.......
  • dremio 24.3.0 arp 扩展变动
    dremio24.3.0版本发布了,在测试arp扩展的是否发现有一些问题,通过对于历史版本,发现主要是一个包的变动参考对比24.3.0之前的24.3.0版本的说明对于以前开发的arp扩展都需要重新调整并构建,才能确保与24.3.0版本兼容,我以前开发的一些扩展后边会更新下参考资料https......
  • dremio 24.3.0 发布
    24.3版本对于bugfix以及新功能都是不少的一些比较方便的新功能支持parquetv2文件,支持元数据清理命令 VACUUMCATALOGCTAS支持排序Array相关操作函数的提供对于以及基于文件的数据源系统支持,自动的增量以及全量反射处理parquet文件字典编码支持COPYINTO增强,支持......