植物大战僵尸辅助之重叠植物

CE修改植物大战僵尸 阅读详情

视频教程的地址:植物大战僵尸辅助视频教程付VC/易语言源代码

流程:

判断植物是否可以被种植,如果可以,则阳光值减少,如果不可以,则返回。

分析步骤:

1.       找到阳光减少的CALL

2.       分析程序开头的关键跳转

       种植成功后,阳光值会减少,所以我们必须找出阳光值减少的call(而不是阳光值增加的call)。

       首先通过CE找到存储“阳光值”的内存地址,然后通过CE找出是什么改写了这个地址。

在弹出的窗口中没有信息,此时阳光值未减少,所以改内存地址暂时未被访问。

返回到游戏中,种植下植物,让阳光值减少,随后我们发现CE中捕获到了1条指令:

mov [edi+00005560],esi,如图所示:

记录下该条指令的内存地址,如上图所示,

mov [edi+00005560],esi指令的内存地址为:0041BA76(重要)

以上工作我们都是在CE中完成的,主要是通过CE得到“阳光值”减少的指令所在的内存地址(0041BA76)

接下来,我们需要使用OD附加该游戏。

转到0041BA76处,如下图所示

转到了0041BA76后,需要在此下断点(F2)

然后返回到游戏中,种植植物,此时程序会在断点处断下来。

接下来,通过查看“调用堆栈”(快捷键ALT+K),我们可以得到代码执行过的Call的调用层级。

此时,堆栈窗口中的数据如下:

其中,

调用堆栈:     主线程

地址       堆栈       函数过程                              调用来自                      结构

0018FB74   00410876   PlantsVs.0041BA60                     PlantsVs.00410871

是最外一层调用的call

0018FC20   0041220E   PlantsVs.0040FD30                     PlantsVs.00412209

是第2层调用的call

通过分析,程序的开头第2层调用Call的PlantsVs.0040FD30处。

我们在PlantsVs.0040FD30处下断点,然后删除之前的断点(0041BA76处)。

接着返回到游戏中,种植植物,在PlantsVs.0040FD30断点处停下。

然后F8单步步过,单步执行一直到最外一层call为止。

在此期间,在每一处实现跳转的位置处,做下标记,如果所示:

直到执行到最外一层call停止单步执行:

到这里我先总结下以上的分析,

实现“重叠种植”的突破口:

游戏中,想在已经种植过的地方再次种植植物的时候,是无法种植的。很明显,游戏自身的代码有自己的判断

a.如果要种植的地方已经有植物了,则无法种植,阳光值不减少

b.如果要种植的地方还没有植物,则可以种植,并且阳光值会减少

简单的流程图就是:

种植植物    允许种植    阳关值减少

反过来,我们只需在阳光值减少的地方(0041BA76)下断点,然后查看调用堆栈,得到在执行到“阳光值减少”代码时,游戏程序还调用到了哪些函数(如:是否已经种植植物了)

通过查看调用堆栈,我们能够得到游戏过程中“种植植物”的程序入口。

因为,在种植植物的时候,需要判断,当前位置是否已经有植物了,在汇编指令中就是通过跳转指令来实现的。

显然,当前位置有无植物,游戏的执行过程肯定不一样。

我们只需在种有植物和没有植物的地方分别进行跟踪,在每一处实现跳转的指令出做标记。

然后前后进行对比,就能得到“有种植植物则跳过”的代码指令,这就是关键所在。找到了该指令,我们只需无条件跳转(jmp)即可。

如下图所示,即是关键代码:

修改指令后:

至此,程序修改成功!

最后,将修改的代码复制到字节集。

原创文章

转载请注明出处:http://blog.youkuaiyun.com/php_fly/article/details/8913656

【CE入门教程】使用Cheat Engine(CE)修改游戏“植物大战僵尸”之植物篇 实现植物卡片无CD、修改植物射速、豌豆射手发射“玉米加农炮”等功能 阅读详情

相关推荐

植物大战僵尸(6):查找植物叠加种植CALL

实验目标:我们都知道植物大战僵尸游戏中植物是不可以叠加种植的,也就是一个格子只能种植一个植物,今天我们将实现一个格子里种植无限多的植物。 我们首先需要找到植物的种植CALL,然后在逐步测试观察功能之间的变化,最终实现功能。 种植CALL的遍历技巧: 打开CE -> 回到游戏 -> 然后回到CE -> 扫描未知初始数 回到游戏 -> 拿起向日葵(不要种) -&g...

weixin_30758821的博客 5096

植物大战僵尸:查找植物叠加种植CALL

我们都知道植物大战僵尸游戏中植物是不可以叠加种植的,也就是一个格子只能种植一个植物,今天我们将实现一个格子里种植无限多的植物。我们首先需要找到植物的种植CALL,然后在逐步测试观察功能之间的变化,最终实现功能。

微软技术分享 2万+

基于easyx库的C/C++游戏编程实例-植物大战僵尸

基于easyx库的C/C++游戏编程实例-植物大战僵尸-游戏设计

qq_69866029的博客 2245

【CE】游戏内存修改 植物大战僵尸 太阳数量

游戏版本:植物大战僵尸中文版( PlantsVsZombies ) https://www.jb51.net/game/73344.html Cheat Engine 版本:Cheat Engine 6.8.3 免责申明:本教程仅用于汇编语言的学习,了解软件安全及计算机微机接口原理,请勿用于商业及任何非法用途。 1、打开游戏: 2、打开CE: 读取游戏内存 ...

ranmaxli的博客 6254

java植物大战僵尸思路_JAVA课程设计——植物大战僵尸(团队)

#1.团队名称、团队成员介绍 ##团名:嗷嗷嗷嗷嗷 ###吴军霖(组长) 写得一手好代码也改得一手好bug代码整洁好看源于强迫症大概没有什么不会的东西叭真正的王者段位 ###欧阳震霆(组员) 同样擅长写代码在青青草原上创造了僵尸家族熟练掌握多线程等技术也是王者段位 ###陈文杰(组员) 可代码可PPT可画图创造太阳落在青青草地熟练******等等厉害技术***(隐藏段位) ###刘艳钦(组员) 可...

weixin_35892206的博客 1067

植物大战僵尸创意工坊模组:僵尸视角塔防与最高难度挑战

游戏模组作为游戏内容扩展的重要方式,通过修改或添加游戏资源与规则实现玩法创新。其技术原理基于游戏引擎的模块化架构,允许开发者在不改动核心代码的情况下注入自定义逻辑。这种技术显著提升了游戏的可玩性和生命周期,在玩家社区内容创作和游戏直播等领域广泛应用。以《植物大战僵尸》创意工坊为例,玩家可以体验僵尸视角的塔防对战,并挑战最高难度模式。该模组支持关卡编辑和自定义内容,为策略游戏爱好者提供了全新的技术实践平台。

weixin_34210740的博客 442

植物大战僵尸各种僵尸攻略(一)

此文章为“植物大战僵尸”专栏中的004刊(2023年9月第2刊),欢迎订阅。版权所有。

2301_78588271的博客 2512

C++ 重制植物大战僵尸(Cocos2dx开源项目)

此游戏全部由本人自己制作完成。游戏大部分的素材来源于原版游戏素材,少部分搜集于网络,以及自己制作。 此游戏为同人游戏而且仅供学习交流使用,任何人未经授权,不得对本游戏进行更改、盗用等,否则后果自负。目前有六种僵尸和六种植物,植物和僵尸的动画都是本人做的。qq:2117610943 最新视频-->点击观看 开源代码下载 提取码:3vzm 点击下载--> 11月28日 新增...

尔灵尔亿的博客 13万+

植物大战僵尸:分析植物的攻击速度

实验目标:植物大战僵尸中,植物是有攻击速度的,比如每隔一段时间会吐出一些子弹,那么由此可判断吐出子弹应该是由一个计数器控制的,也就是说只要我们能够找到控制植物攻击的时钟并改写它,也就可以实现植物的无限吐子弹。 吐出子弹的遍历技巧: CE附加游戏 -> 手动种下豌豆射手 -> 搜索未知初始化数据(未攻击) 出现僵尸 -> 开始攻击的时候 -> 使用变速精灵或变速齿轮将攻击速...

微软技术分享 6046

(十五)C++自制植物大战僵尸游戏僵尸基类讲解

植物大战僵尸游戏开发教程专栏地址在游戏中,最重要的两个类别就是植物与僵尸。僵尸可以对植物进行攻击,不同的僵尸攻击方式可能会不同,但是不同又有许多相同的属性。在基类(父类)中定义僵尸共有属性,供派生类(子类)继承。

尔灵尔亿的博客 1864

植物大战僵尸源码unity

植物大战僵尸源码,unity多光卡。

java植物大战僵尸_JAVA课程设计——植物大战僵尸(团队)

1.团队名称、团队成员介绍团名:嗷嗷嗷嗷嗷吴军霖(组长)写得一手好代码也改得一手好bug代码整洁好看源于强迫症大概没有什么不会的东西叭真正的王者段位欧阳震霆(组员)同样擅长写代码在青青草原上创造了僵尸家族熟练掌握多线程等技术也是王者段位陈文杰(组员)可代码可PPT可画图创造太阳落在青青草地熟练******等等厉害技术***(隐藏段位)刘艳钦(组员)可代码可bug可博客豌豆射手吐出豌豆在数据库的危险...

weixin_36165152的博客 1532

植物大战僵尸HTML5源码

提供国人写的强大的html5植物大战僵尸(源码) 写得很棒~占用资源少。 JSPVZ 程序制作进度(2011.1.5) 本程序提供源码由HTML5中文网整理打包下载,该下载包可以使用服务器环境运行,也可以在电脑上双击Index.htm直接运行 另外智能手机可以安装OperaMobile10.1及其以上版本,把代码整个拷贝到手机存储卡上,在浏览器中输入形如“E:/jspvz”形式的地址直接本地运行程序,无需联网 转载使用请勿修改LonelyStar署名,pvz.lonelystar.org网址和PopCap公司版权声明 保留对该JS版植物大战僵尸版权所有 2011.1.5 添加了第二大关的第三小关 修正一大波和最后一波字样无法消失的BUG 2010.12.31 添加了“解谜模式” 调整了程序中关卡对于胜利和失败的算法 几个植物和僵尸做了调整 修改了几个BUG 2010.12.27 对初始界面稍作修改 2010.12.9 添加了“靠天吃饭”小游戏 给领带僵尸添加两种形象 修正辣椒爆炸图片的问题 咖啡豆0耗的数据修正 2010.12.8 提高了一下僵尸行走的纵坐标 修正了土豆雷和樱桃炸弹爆炸图片在IE下的问题 调整了一大波僵尸和最后一波僵尸出现的图片效果 2010.12.7 添加了第二大关的两小关 添加了“乱葬岗”小游戏 修改了几个BUG 调整了进度显示 2010.12.1 添加了“贫瘠之地”小游戏 调整游戏初始化界面和选择模式界面 修正第十关IE下运行报错的BUG 修正IE下单机运行有部分图片看不到的问题 修正蘑菇植物无睡眠动画而实际却在睡眠的BUG 修正曾哥蘑菇种植在醒着的大喷菇上仍然睡着的BUG 修正僵尸出场界面显示僵尸种类的BUG 修正地刺和地刺王伤害过高的BUG 加大“僵尸快跑!”的难度

植物大战僵尸变态辅助开发系列教程(E语言实现和VC6实现)(上)

改成-5的话,豌豆射手只会有一直吐炮弹的动作,却没有炮弹射出来,炮弹发射不出来,也就是说如果减得数值过大,炮弹还没发射出来呢,就又执行了一次攻击的间隔,这个动作还没执行完又再次发射,炮弹还没发射出来就又开始一次新的发射,就会造成炮弹发射不出来了。在游戏里面,植物能种植的时候是1,不能种植的时候是0,就是说你在种植的时候不但有一个状态的显示,它还会有一个相关的判断,如果是1的话怎么做,如果是0的话又怎么做。思路就是,要找到在建造的同时截取到种植的CALL,然后对比下函数的开头,看看有什么变化;

zhaopeng01zp的博客 1690

Mind+掌控板实战:5分钟搞定Easy IoT的MQTT通讯(附完整代码)

本文详细介绍了如何利用掌控板和Mind+图形化编程软件,快速实现基于Easy IoT平台的MQTT通讯。通过清晰的步骤讲解和完整的代码示例,指导用户完成从云端配置、Wi-Fi连接到MQTT消息发布与订阅的全过程,帮助初学者轻松构建物联网设备间的双向对话系统。

weixin_29300241的博客 449

计算机网络实验六 RIP 配置实验

Man! What can I say?

AClerk的博客 1593

JAVA课程设计——植物大战僵尸(团队)

1.团队名称、团队成员介绍 团名:嗷嗷嗷嗷嗷 吴军霖(组长) 写得一手好代码也改得一手好bug 代码整洁好看源于强迫症 大概没有什么不会的东西叭 真正的王者段位 欧阳震霆(组员) 同样擅长写代码 在青青草原上创造了僵尸家族 熟练掌握多线程等技术 也是王者段位 陈文杰(组员) 可代码可PPT可画图 创造太阳落在青青草地 熟练******等等厉害技术 ***(隐藏段位) 刘艳钦(组员) 可...

diaoxiaxin0941的博客 1400

番外篇:ADS功放设计实战——负载与源牵引的协同优化

本文深入探讨了ADS功放设计中负载牵引与源牵引的协同优化原理及实战技巧。通过2.4GHz Wi-Fi功放等案例,详细解析了基波阻抗迭代优化、谐波调谐高级技巧及收敛判断方法,帮助工程师显著提升功放效率至78%以上。文章特别强调ADS仿真工具的正确使用方法和实际调试经验,为射频功放设计提供实用指导。

weixin_33483304的博客 341

植物大战僵尸(8):分析植物的攻击速度

实验目标:植物大战僵尸中,植物是有攻击速度的,比如每隔一段时间会吐出一些子弹,那么由此可判断吐出子弹应该是由一个计数器控制的,也就是说只要我们能够找到控制植物攻击的时钟并改写它,也就可以实现植物的无限吐子弹。 吐出子弹的遍历技巧: CE附加游戏 -> 手动种下豌豆射手 -> 搜索未知初始化数据(未攻击) 出现僵尸 -> 开始攻击的时候 -> 使用变速精灵或变速齿轮将攻...

weixin_30399797的博客 4113

逆向实战:Soul聊天协议加密与Frida绕过检测

本文详细解析了Soul聊天协议逆向分析的全过程,重点介绍了如何利用Frida绕过应用的反调试检测机制。通过静态分析定位关键SO库,并编写Frida脚本动态Hook线程创建函数,成功实现对抗。文章还进一步追踪了基于DES算法的加密流程,并探讨了协议数据结构的解析方法,为移动应用安全研究提供了实战参考。

2w3e4r5t6y的博客 1133

从零到一:Qt与PCL的跨平台开发环境搭建全攻略

本文详细介绍了从零开始搭建Qt与PCL跨平台开发环境的完整流程,涵盖Windows、Linux和macOS三大平台。重点解析了Qt5与Qt6版本选择、PCL库安装配置、VTK集成等关键技术要点,并提供跨平台CMake项目模板和常见问题解决方案,助力开发者快速构建三维点云处理应用。

weixin_29280657的博客 384

告别黑边困扰:让经典《植物大战僵尸》在宽屏显示器上完美重生

还在为现代宽屏显示器上玩《植物大战僵尸》时两侧的黑边烦恼吗?这款十年经典游戏终于迎来了它的视觉重生时刻!通过PvZWidescreen宽屏模组,你可以体验到前所未有的沉浸式游戏感受,让每一株植物、每一只僵尸都在全屏视野中焕发新活力。 ## 🌟 宽屏模组带来的惊艳变化 ### 主菜单界面全面升级 [![宽屏游戏选择界面](https://raw.gitcode.com/gh_mirrors/p

gitblog_00595的博客 649

cartographer ceres后端优化

这里引用一篇文章作用一:用户可以选择使用Problem::AddParameterBlock显式添加参数块;在显式添加的时候ceres会内部进行额外的正确性检查。当Problem::AddParameterBlock()不存在时,Problem::AddResidualBlock()会隐式添加参数块,因此不需要显式调用Problem::AddParameterBlock()函数。ps:类似构造函数,显式构造函数。

南北粉面馆 803
上一篇: MS-DOS头部
下一篇: JMP地址公式推导
曾是土木人
博客等级 码龄15年 67粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值