Python 开发植物大战僵尸杂交版辅助【全网最详细_查找 + 代码编写一体化零基础也能学会】

目录

辅助最终展示效果

一、文章介绍

二、工具介绍

三、基址搜索

3.1、寻找阳光基址

3.2、寻找卡槽冷却基址

3.3、寻找僵尸刷新时间基址

3.4、寻找大阳光刷新时间基址

3.5、寻找植物编号基址

3.6、寻找场上僵尸数量基址

3.7、寻找僵尸 X 坐标基址

3.8、通过找到的僵尸 X 轴坐标基址寻找 Y 轴、血量等基址

3.9、寻找每只僵尸之间的地址偏移

四、代码编写

4.1、基础代码

4.2、功能代码

4.2.1、编写实现无限阳光

4.2.2、编写植物无冷却

4.2.3、编写僵尸全出功能

4.2.4、编写无限刷新大太阳功能

4.2.5、编写植物替换功能

4.2.6、编写获取场上僵尸数量功能

4.2.7、编写获取获取僵尸数组功能

4.2.8、编写绘制僵尸方框功能

4.3、完整代码

五、总结


辅助最终展示效果

演示视频

一、文章介绍

        写这篇文章的目的是告诉大家游戏单机辅助是如何编写的,这种方法在其他部分非单机游戏也能适用,开发者该如何去防范,知攻善防,并不鼓励大家写游戏外挂。

        游戏辅助本身就是利用游戏漏洞进行开发的,在单机游戏中,游戏数据都是存储在本地的,运行游戏后通过使用相应的内存查找工具获取到当前游戏数据的存储地址,通过对其数据进行修改来达到游戏规则之外的效果,使玩家可以轻松通过。

        通过本篇文章的学习我们就可以知道辅助开发者是如何获取到游戏数据的,对我们游戏开发人员是有一定的帮助的,比如我们可以对游戏数据进行加密,增加辅助开发的难度,来尽量维持游戏的平衡等......

二、工具介绍

1、CE(内存搜索工具)

2、植物大战僵尸杂交版 2.0.88

3、精易助手 (后文用到的时候有附带下载链接,读者现在不必理会)

4、PyCharm Community Edition 2023.3.4(Python 开发环境)

5、SafeDog (Python 游戏安全测试模块,需要模块联系我

【版本不需要和我一样也可以,不过我所用的 Python 是  Python3 ,这点大家尽量和我保持一样,因为有些代码的使用在 Python2 中区别比较大】

三、基址搜索

3.1、寻找阳光基址

打开游戏和 CE 工具并附加进程

附加完成后进入游戏关卡

CE 中填写设置相关信息

回到游戏种植植物或者拾取太阳使阳光数量发生变化

在 CE 中搜索 375,其他东西不用变,然后点击 Next Scan(下一次扫描,是在第一次的基础上进行扫描的),注意不是 New Scan

只剩一条数据,那么这条就是阳光的地址了,不过这只是临时地址,也就是说,游戏关闭再开地址就变了,我们如果要制作辅助就需要找到数据的基址(不会变动的,不关游戏关了几次或是重新安装,都不会变)

然后会打开如下窗口,这个窗口不要关,我们回到游戏再次改变阳光的数量,观察窗口的变化

这个 eax + 5560 的 5560 就是我们的一级偏移

选择 New Scan 再选 First Scan

这里告诉大家怎么去找多级指针,我们找地址比较特殊的和其他差别比较大的那种地址,如图所示

所以我们就右键查看是谁访问了他,这里要选访问,而不是改写

找到这种数据就要偷笑了,因为像这种很整齐的而且偏移都是一样的大概率就是找对了,我们再回到游戏改变一下阳光的数量

因为我们第一次找到的是 eax + 5560 所以这里要找 mov eax 开头的,这些是汇编知识了,寄存器相关的,大家不懂可以去找书或视频看,这里先看操作学习思路

双击打开

继续搜索,其他操作不变,然后你就会发现找到了基址了,当然了如果你的 CE 版本和我的不同他可能显示的是十六进制的地址,而不是名称,都这无所谓,他们都是绿色的,这里我试过了,每一条都可以作为基址,随便选一条就好了,这里我选择最后一条

填完之后点击 OK,然后就会发现关闭游戏再打开它仍然有效(注意 CE 要重新附加进程),写游戏辅助的时候就需要用到它了

PlantsVsZombies.exe+2AA00C + 768 + 5560

3.2、寻找卡槽冷却基址

        好了,通过查找阳光基址相信读者已经大致了解了 CE 的简单使用了,那么接下来的内容里我就不一一截图解释了,部分通过文字的描述来给大家讲解,操作都是大同小异的,聪明的你肯定能明白。

        寻找卡槽基址有什么用呢?当然是实现植物无冷却啊,我们首先要了解游戏的冷却原理,没次种植植物后,植物就会在卡槽中进入生长时间也就是我们说的冷却时间。在植物大战僵尸中冷却结束表示 1,冷却开始表示 0(也就是拿起植物但不种植时卡槽的状态)。

一直重复拿起搜索 0,放下搜索 1,获取搜索完后不要返回游戏继续点击搜索未变动的数值,过滤掉那些变动的值,因为我们没有对卡槽进行操作,那么它对应的值就不会变

扫到 200 多条数据的时候就差不多了,因为不可能每次都和找阳光那样一下就找得只剩下一条,有些数据过滤完还剩下几千条也有,接下来就需要自己去判断了。

点第一条数据,然后把滚动条拉倒中间,按住键盘上的 shift 键然后再随便选一条数据点一下

通用的方法按 shift 选择一半的数据然后按回车对值进行修改,如果我们的卡槽现在是亮的我们就改成 0,反之改成 1 然后按回车全部锁定,再看一下游戏的卡槽里吗有没有变暗(亮),如果有说明正确的地址在我们选择的数据中,另外一部分没选的数据就可以删除了,然后再利用二分法继续寻找,直到找到正确的地址。

接下来就用同样的方法寻找基址即可,不过需要注意的是,要把数据类型改回 4 Byte

这样就可以找到第一个卡槽冷却时间的基址了

PlantsVsZombies.exe+2AA00C + 768 + 144 + 70

通用的方法我们去寻找第二个第三个卡槽的冷却时间,我就会发现他们的基址分别如下:

第二个卡槽:PlantsVsZombies.exe+2AA00C + 768 + 144 + C0

第三个卡槽:PlantsVsZombies.exe+2AA00C + 768 + 144 + 110

他们之间偏移相差 50 (十六进制),那么以此类推就可以知道后面所有卡槽的冷却基址了,我们只需要通过写循环就可以实现全卡槽无冷却。

3.3、寻找僵尸刷新时间基址

        找到关卡进度条基址我们就可以实现僵尸全部出现,然后快速通过。我们首先要知道,植物大战僵尸中,每一波僵尸出现的间隔是一个倒计时,比如第一波出现了那么就进入倒计时,时间一到就刷新第二波僵尸,我们要找进度条基址也就是找到这个间隔的时间地址,把它改成 1 并且锁定,那么僵尸就会一次性全部出现。

【注意关卡刚开始还未出僵尸的时候也是在倒计时,这时候就可以开始扫描了,当然了一定要卡好时间,因为我们在倒计时期间扫描的是减少的值,一不小心僵尸刷新了,这时候值是变大了重新开始倒计时,如果还扫描变少的值那

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/870922.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

编制,傻傻分不清?

目录 01.什么是聘用合同? 02.事业单位如何取得编制 03.如何快速判断岗位否有编制? 1.看公告直接告知 2.看是否有权威依据 3.看合同期限与试用期期限 4.看岗位表 5.咨询招考单位 04.事业单位改革备案制编制(员额制) 05.事业编制 与备案制(员额制)的区别? 1.二…

初学者必看的 3 个 Python 小项目

我们都知道,将知识点融入实际操作是提高编程学习效率的关键。尤其对于初学者来说,通过学习一些涉及核心编程概念的简单项目,不仅可以深化对编程语言的理解,还能快速提高解决问题的能力。 下面将探讨三个基础的 Python 项目&#…

Bilibili Android一二面凉经(2024)

BiliBili Android一二面凉经(2024) 笔者作为一名双非二本毕业7年老Android, 最近面试了不少公司, 目前已告一段落, 整理一下各家的面试问题, 打算陆续发布出来, 供有缘人参考。今天给大家带来的是《BiliBili Android一二面凉经(2024)》。 面试职位: 高级Android开发工程师&…

《昇思25天学习打卡营第1天|QuickStart》

说在前面 曾经接触过华为的910B服务级显卡,当时基于910B做了一些开发的工作,但是总感觉做的事情太低层,想要能自顶向下的了解下,因此开始了MindSpore的学习。另外也想给予提供的显卡,简单尝试下llm模型的训练&#xf…

GCN、GIN

# 使用TuDataset 中的PROTEINS数据集。 # 里边有1113个蛋白质图,区分是否为酶,即二分类问题。# 导包 from torch_geometric.datasets import TUDataset from torch_geometric.data import DataLoader import torch import torch.nn as nn import torch.…

Linux rpm和ssh损坏修复

背景介绍 我遇到的问题可能和你的不一样。但是如果遇到错误一样也可以按此方案尝试修复。 我是想在Linux上安装Oracle,因为必须在离线环境下安装。就在网上搜一篇文章linux离线安装oracle,然后安装教程走,进行到安装oracle依赖包的时候执行了…

数据库mysql-对数据库和表的DDL命令

文章目录 一、什么是DDL操作二、数据库编码集和数据库校验集三、使用步骤对数据库的增删查改1.创建数据库2.进入数据库3.显示数据库4.修改数据库mysqldump 5.删除数据库 对表的增删查改1.添加/创建表2.插入表内容3.查看表查看所有表查看表结构查看表内容 4.修改表修改表的名字修…

SpringBootWeb 篇-入门了解 Swagger 的具体使用

🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 Swagger 介绍 1.1 Swagger 和 Yapi 的使用场景 2.0 Swagger 的使用方式 2.1 导入 knife4j 的 maven 坐标 2.2 在配置类中加入 knife4j 相关配置 2.3 设置静态资源…

oracle控制文件详解以及新增控制文件

文章目录 oracle控制文件1、 控制文件包含的主要信息如下:2、查看目前系统的控制文件信息,主要是查看相关的字典视图 oracle新增控制文件 oracle控制文件 控制文件是一个很小的二进制文件(10MB左右),含有数据库结构信息,包括数据…

Open3D 点云Kmeans聚类算法

目录 一、概述 1.1算法介绍 1.2实现步骤 二、代码实现 三、实现效果 3.1原始点云 3.2聚类后点云 前期试读,后续会将博客加入该专栏,欢迎订阅Open3D与点云深度学习的应用_白葵新的博客-CSDN博客 一、概述 1.1算法介绍 聚类是一种将数据集分组的方…

人工智能时代的转型与挑战:从就业替代到技术创新的新纪元

人工智能时代的转型与挑战:从就业替代到技术创新的新纪元 摘要 随着人工智能(AI)技术的飞速发展,我们正步入一个前所未有的变革时代。本文旨在探讨当前人工智能领域的三大关键趋势——AI对工作岗位的潜在取代、ChatBot技术的厌倦…

redis的发布与订阅

与消息队列的差别 不做持久化 不是异步 不能保证可靠性 使用实例 发布者示例:连接到 Redis 服务器,使用 publish 方法发布消息到指定的频道。 订阅者示例:连接到 Redis 服务器,使用 subscribe 方法订阅指定的频道,并…

Next.js的静态生成和服务端渲染,你搞懂了吗?

Next.js的静态生成和服务端渲染,你搞懂了吗? 嘿,各位前端小伙伴们!今天咱们来聊聊Next.js中那令人又爱又恨的静态生成(Static Generation)和服务端渲染(Server-side Rendering)。这…

软设之中介者模式

设计模式中,中介者模式的意图是:用一个中介对象来封装一系列的对象间的交互。它使各个对象不需要显式互相调用,从而达到低耦合,还可以独立改变对象间的交互。 比方,飞机与塔台之间,如果没有塔台,飞机就得需…

双语|如何给教授/教职员发送电子邮件

斯坦福大学提出建议,指导学生如何给教授或者教职员发送电子邮件,这些建议对于访问学者、博士后及联合培养博士也很适用,故知识人网小编用双语对照的形式进行节选转发。 Whether youre writing a professor to ask for an extension or to loo…

笔记:在Entity Framework Core中使用乐观并发控制来处理数据更新的冲突

一、目的: 在Entity Framework Core (EF Core) 中配置乐观并发控制主要涉及到使用并发令牌。并发令牌是在模型中定义的属性,用于在数据库操作期间检测并发冲突。当两个或更多用户尝试同时更新同一条记录时,EF Core 会使用这些令牌来确定是否有…

C++图像转换过程中的内存异常报错

问题描述 在OpenCV中&#xff0c;将输入的图像转到Lab颜色空间中&#xff0c;使用cv::split 函数分离L&#xff0c;A&#xff0c;B三个通道的时候发生内存异常&#xff0c;报错。 cv::split(LabImg, std::vector<cv::Mat>{L, A, B});报错信息&#xff1a; 0x00007FFAA1…

多平台支持,制作的电子画册随时随地都可以查看

​在数字化的时代背景下&#xff0c;电子画册以其便捷的传播方式、丰富的视觉表现形式&#xff0c;赢得了大众的喜爱。它不仅能够在个人电脑上展现&#xff0c;还能通过智能手机、平板电脑等多种移动设备随时随地被访问和浏览。这种跨平台的支持&#xff0c;使得无论你身处何地…

高精度定位与AI技术的深度融合——未来智慧世界的钥匙

引言在当今迅速发展的科技时代&#xff0c;精确定位和人工智能&#xff08;AI&#xff09;技术正在快速推动各领域的创新与变革。高精度定位结合AI技术所产生的融合效应&#xff0c;正在加速智慧城市、智能驾驶、智能物流以及许多其他领域的实现。这篇文章将详细探讨高精度定位…

基于Java技术的校园台球厅人员与设备管理系统

你好呀&#xff0c;我是计算机学姐码农小野&#xff01;如果有相关需求&#xff0c;可以私信联系我。 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBoot框架 工具&#xff1a;Eclipse、Navicat、Maven 系统展示 首页 用户注册界面 球桌信息…