首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

植物大战僵尸代码实现无限阳光

本次实验内容:通过逆向分析植物阳光数量的动态地址找到阳光的基址与偏移,从而实现每次启动游戏都能够使用基址加偏移的方式定位阳光数据,最后我们将通过使用C语言编写通用辅助实现简单的无限阳光外挂,在教程开始之前我们先来说一下为什么会有动态地址与基址的概念...全局数据区里面的数据则是在编译的时候就写入到程序里了,所以不会变化,而游戏的开发都会使用面向对象技术,我们可以推测游戏中的阳光很可能就是类中的一个数据成员,而数据成员的地址就是通过new动态分配的,如下代码...现在我们就进入正题,开始挖掘游戏数据,先从最简单的阳光地址找起来吧,首先你需要运行游戏并附加植物大战僵尸进程,然后我们开启新的游戏,首次扫描我们先来遍历4字节的50,也就是搜索当前阳光的数量,当然你也可以尝试搜索金钱数量等...EAX赋值了,直接在00FE82E8右键,查找访问地址,然后会看到以下截图内容: 此处会出现一大堆指令,这里也需要一个遍历技巧,我们可以排除CMP之类的对比指令,因为我们是增加阳光所以不可能出现对比的代码...- mov ecx,[006A9EC0] << 最后总结出定位静态基址公式 【阳光= [[[006a9ec0]+768]+5560]】 通过编程的方式读取并修改我们的阳光数量,如下这样一段代码

1.1K10

植物大战僵尸辅助

孩子一直迷恋植物大战僵尸这款游戏,从一开始的水平不行,到后来经常看植物大战僵尸的过关视频来提升自己的游戏水平,到现在游戏是玩的越来越好了,至少感觉植物大战僵尸这个游戏水平比我强很多。...为了希望他能进一步的在游戏中能够学习到知识,我为他写了一个简单的修改阳光和种植植物后免冷却时间的辅助工具。...种植植物免冷却的功能,可以通过 CE 找到格子所在的内存,然后找到修改该格子状态的代码,最后将该段代码用 NOP 指令替换掉即可。...#define CD_PATCH_ADDRESS 0x004b4ca1 // 种植植物免冷却 // 通过窗口名查找句柄 HWND hGameWnd = NULL; hGameWnd = FindWindow...OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwPid); DWORD dwOldByte = 0; DWORD dwReadWriteByte = 0; // 读取免冷却代码

78030
您找到你想要的搜索结果了吗?
是的
没有找到

用 Python 实现植物大战僵尸代码

导读:以前很火的植物大战僵尸游戏,本想在网上找个Python版本游戏学习下,无奈没有发现比较完整的,那就自己来写一个吧。...01 功能介绍 最近一直在给这个植物大战僵尸游戏添加新的植物僵尸,因为网上的图片资源有限,能加的植物僵尸比较少, 目前进展如下。...支持的僵尸类型:普通僵尸,旗子僵尸,路障僵尸,铁桶僵尸。新增加读报僵尸。 使用json文件保存关卡信息,设置僵尸出现的时间和位置。 增加每关开始时选择上场植物。 增加除草机。 下面是游戏的截图: ?...▲图1:新增的植物僵尸 ? ▲图2:每关开始选择上场植物卡片 ? ▲图3:选择植物在哪里种植 02 植物卡片选择和种植 如图3所示,游戏中可以种植物的方格一共有45个(有5行,每行9列)。...代码在source\component\menubar.py中,每个植物卡片是一个单独的Card类,用来显示这个植物

1.8K20

植物大战僵尸全屏奶油

植物大战僵尸》这个游戏中想让僵尸走慢一点,方法挺多的,可以使用冰冻豌豆射手,也可以使用玉米投手,也可以使用冰川菇。这里使用玉米投手的奶油,让僵尸走的慢些。...,我们想要增加判断,需要开辟一块内存写入判断的代码,当离房子比较近的时候,改变僵尸头顶奶油的状态即可。...如果修改上面的代码,那么修改一条指令会影响后面的多条指令,毕竟影响过的指令,我们是要手动补上的。...写入判断和修改僵尸状态的代码,如下的代码: 00400F00 - 60 - pushad 00400F01 - 9C -...代码不多,还是比较简单的,效果如下: 从上面的图中可以看出,僵尸走到红框的位置处头上都顶了奶油,并且站在那里不动了,而没有走到那里的僵尸,将会继续往前走,直到走到红框的位置处。

12620

植物大战僵尸代码实现自动收集阳光

当我们点击阳光后阳光增加了,说明已经完成了判断,下一步就是写入变量从而增加阳光,那么我们先来找到阳光的动态地址,并在该动态地址上按下F6键查找写入,然后回到游戏等待阳光出现并点击阳光,此时CE会出现以下代码...接着打开X64dbg附加到游戏进程,附加完成后,游戏会被X64dbg暂停运行,此时我们直接按下F12让游戏运行起来,然后按下Ctrl + G输入00430A11跳转到刚才找到的代码位置,过去以后直接F2...plantsvszombies.sub_4309D0> 这里出来的,而上方就有一个jne plantsvszombies.4313FD关键跳,此处的关键跳转也并不是控制是否回收阳光的关键跳转,而此处的代码量比较少...注意:如果我们在关键跳jne plantsvszombies.4313FD处下断点时,会发现当阳光出现后程序会被无限的断下,这说明是有一个定时器线程在不断的执行判断代码,每次都会判断你是否点击了阳光,所以...知道了修改流程,那我们就通过编程的方式来实现修改程序的硬编码,首先我们可以通过以下代码完成字节集的读取。

2.3K10

c语言也能写植物大战僵尸吗_植物大战僵尸僵尸写的纸条

不少同学都玩过《植物大战僵尸》,最近PopCap公司又带来了新版的消息,这次高兴的轮到Xbox的用户了,日前PopCap公司公布了《植物大战僵尸》XBLA版的截图,这个版本的《植物大战僵尸》引入了多人合作与对抗模式...游戏最终完成情况C语言植物大战僵尸 第一章 需求分析 设计一个双人对战的植物大战僵尸,两人在一台电脑上玩。 植物方使用鼠标控制,基本上与原版的控制的方法一样。...在内存中创建与画布一致的缓冲区 2、在缓冲区画图 3、将缓冲区位图拷贝到当前画布上 4、释放内存缓冲区 增加双缓冲后的示例程序地址双缓冲加载GIF 程序结果如图所示 3.2游戏元素 3.2.1地图格子元素 植物大战僵尸的地图中的草地是有一格一格的...1年46,售后保障稳定 3.2.2卡片元素 植物僵尸都有选择的卡片,如图所示 植物植物的卡片,僵尸僵尸的卡片。...例如:格子里没植物僵尸通过;僵尸碰到豌豆射手,坚果墙,向日葵就停下来开吃,同时,格子的生命值不停地减,直到吃掉植物,向前通行,当是撑杆僵尸有一个杆子,碰到它们后要跳过它们;僵尸碰到炸弹,窝瓜,食人花就被吃掉或炸死

2.2K30

Python实现植物大战僵尸

植物大战僵尸》是由PopCap Games开发的一款益智策略类单机游戏,于2009年5月5日发售。玩家可通过武装多种植物切换不同的功能,快速有效地把僵尸阻挡在入侵的道路上。...最近在逛GitHub时看到一款基于Python的植物大战僵尸,用鼠标收集阳光,选择植物卡片并播种植物,原汁原味,满满的回忆,目前该项目仅仅支持冒险模式,项目效果如下所示: ?...该项目使用json文件存储关卡数据(例如僵尸的位置和时间,背景信息),并且支持白天状态功能和夜间状态切换功能。...实施植物有:向日葵,豌豆,wallnut,snowpeashooter,cherrybomb,threepeashooter,剁碎,puffshroom,potatomine,穗状花序,scaredyshroom

78030

Python《植物大战僵尸代码实现:植物卡片选择和种植

作者 | marble_xu 来源 | CSDN原力计划获奖文章 功能介绍 植物卡片选择和种植 完整代码 代码实现 植物卡片类 卡片栏类 鼠标图片切换 提示种在哪个方格中 编译环境 功能介绍 最近一直在给这个植物大战僵尸游戏添加新的植物僵尸...支持的僵尸类型:普通僵尸,棋子僵尸,路障僵尸,铁桶僵尸。新增加读报僵尸。 使用json文件保存关卡信息,设置僵尸出现的时间和位置。 增加每关开始时选择上场植物。 增加除草机。...Python 植物大战僵尸代码实现(1):图片加载和显示切换 https://blog.csdn.net/marble_xu/article/details/100129768 下面是游戏的截图: 图1...:新增的植物僵尸 ?...完整代码 游戏实现代码的github链接 植物大战僵尸 https://github.com/marblexu/PythonPlantsVsZombies 这边是csdn的下载链接 植物大战僵尸 https

1.6K30

前端小游戏——植物大战僵尸

给大家分享一个植物大战僵尸网页游戏源代码,感兴趣的小伙伴可收藏学习 ????...完整源码 文章目录 ⌛️效果展示 ⌛️游戏介绍 ⌛️游戏内容 (1)冒险模式 (2)小游戏 ⌛️图片资源 ⌛️代码展示 (1)HTML源码 (2)部分JS源码 ---- 先来一睹“芳容...” ⌛️效果展示 ---- ⌛️游戏介绍 《植物大战僵尸》 是一款极富策略性的小游戏。...可怕的僵尸即将入侵,每种僵尸都有不同的特点,例如铁桶僵尸拥有极强的抗击打能力,矿工僵尸可以挖地道绕过种植在土壤表面的植物等。玩家防御僵尸的方式就是栽种植物。...《植物大战僵尸》集成了即时战略、塔防御战和卡片收集等要素,玩家控制植物抵御僵尸的进攻,保护这片植物园。

47740

植物大战僵尸:寻找召唤僵尸关键CALL

6.在CE数据窗口选中第一个地址,右键选择是什么改写了它,然后等待出现僵尸,会发现一条汇编代码,我们记下地址【00471B57】 接着在第二个地址上同样的操作,然后记下地址【0041DE07】。...上方代码,一般情况下应该不会有调用函数,因为这里是只是计数器,那么这个函数的作用应该仅仅只是一个僵尸计数函数,所以我们要返回到上一层。...9.我们直接RETN返回到上一层,会看到如下代码,直接在PUSH地址上下一个【F2】断点,然后运行游戏,回到游戏等待出现新的僵尸,这里我为了演示方便重新开了一局。...上图的EDI是一个动态地址,因为他是僵尸对象,所以每次程序运行都会发生变化,如果想用代码注入器注入代码的话,则需要找到EDI的基地址,接下来我们将使用CE搜索EDI的基址和偏移。...13.此处我们已经发现了基地址,我们直接记下来吧 【006A9F38】偏移是【768】指向的就是僵尸的对象地址。 14.使用代码注入器测试一下效果。

74030

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

实验目标:植物大战僵尸中,植物是有攻击速度的,比如每隔一段时间会吐出一些子弹,那么由此可判断吐出子弹应该是由一个计数器控制的,也就是说只要我们能够找到控制植物攻击的时钟并改写它,也就可以实现植物的无限吐子弹...吐出子弹的遍历技巧: CE附加游戏 -> 手动种下豌豆射手 -> 搜索未知初始化数据(未攻击) 出现僵尸 -> 开始攻击的时候 -> 使用变速精灵或变速齿轮将攻击速度放慢 -> 搜索减少的数值 回到游戏...等待豌豆射手再次吐出子弹 -> CE直接搜索变大的数值 -> 最后剩下的地址中 数值在(0-1000)以内的就是 1.运行游戏并使用CE【直接附加】进程,为了方便调试请自行将阳光改为【99999】,等待僵尸出现后...6.其实上方的两个地址相隔的不是太远,使用哪一个都可以跳转到核心代码处,此处我们就直接查找定时器的地址吧,OD直接附加游戏进程,然后【Ctrl + G】跳转到【0045F8A9】,直接在此处下断点,回到游戏豌豆射手攻击时...我们可以通过修改【 mov ecx,dword ptr [esi + 5C]】来实现加速植物攻击加速,这里可以将该指令直接改成【mov ecx,22】即可实现植物攻击加速。

60310

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

实验目标:我们都知道植物大战僵尸游戏中植物是不可以叠加种植的,也就是一个格子只能种植一个植物,今天我们将实现一个格子里种植无限多的植物。...7.我们在第一个地址上面,右击选择查找访问的地址,也可以选中第一行按下【F5】键,回到游戏并手动种植一个植物,会发现一条可疑汇编代码,我们先把地址记下来【00410AC1】 这里我们只需要记录植物种下后出现的地址...,前面三个分别是拿起植物和放下植物代码,我们这里不需要考虑。...8.关闭CE后,直接打开OD并附加植物大战僵尸游戏进程,然后按下【F9】让程序先跑起来,然后【Ctrl + G】输入【00401000】回到程序领空。...12.继续回到游戏,种下植物OD会段在以下位置,我们默认是不跳转的也就是种植,我们修改标志位观察发现,植物并没有被种下,说明这个跳转跳过了关键的种植代码,我们向下找也不难看出,于是乎我们重点分析它跳过的代码的执行轨迹

80020

植物大战僵尸:实现全屏爆炸

植物大战僵尸这款游戏可以说是很多90后的回忆了,基本上只要是90后或多或少的都接触过,而玩游戏与制作辅助是两个概念,今天我将给大家分享一些游戏辅助方面的制作技巧,之所以使用植物大战僵尸这款游戏是因为游戏简单容易分析...当我们种植植物的时候必定会触发种植Call,那么此时我们只要遍历出植物的种植过程即可,通过CE我们找到拿起植物的关键代码,我们可以猜测植物拿起来这个动作之后应该就是种植了,只要我们能够找到控制拿起植物代码...00410AC1/004123AC 接着我们以同样的方法,在037C07C8这个内存地址上查找访问代码,然后再次回到游戏中种植一个植物,此时地址表中会出现三条汇编指令,由于我们并不知道到底哪一条指令附近存在种植...最后我们的任务是通过编程实现远程注入,如下代码我想不用我多解释了吧,通过循环填充实现全屏爆炸。...至此我们的植物大战僵尸分析就到此结束了,其他的比如植物无敌,植物攻击加速等,就留一个作业,大家开动脑筋看能不能自己实现,回顾前面所讲的外挂制作技巧,你是否已经完全理解了呢?

47530

植物大战僵尸:逆向分析阳光

植物大战僵尸这款游戏可以说是很多90后的回忆了,基本上只要是90后或多或少的都接触过,而玩游戏与制作辅助是两个概念,今天我将给大家分享一些游戏辅助方面的制作技巧,之所以使用植物大战僵尸这款游戏是因为游戏简单容易分析...现在我们就进入正题,开始挖掘游戏数据,先从最简单的阳光地址找起来吧,首先你需要运行游戏并附加植物大战僵尸进程,然后我们开启新的游戏,首次扫描我们先来遍历4字节的50,也就是搜索当前阳光的数量,当然你也可以尝试搜索金钱数量等...经过我对具体坐标的分析,在本游戏中太阳花与太阳花之间,可能使用了一维结构体来存储的植物植物之间的属性,每次相加偏移都会遍历到下一个植物的属性上面,也就是说无论太阳花种植到在什么位置,只要相加偏移就可以遍历到下一个植物的冷却数据...上图是经过测试后备注的一些细节,我们只需要将图中的0045FA7D处的指令集,替换为nop即可实现全图的植物无线吐阳光啦,其C语言修改代码如下,代码中使用了上面封装好的的写内存字节集函数。...CloseHandle(hProcess); } int main() { for (int i = 0; i < 10;i++) InjectCode(3644, AddSun); } 至此我们的植物大战僵尸关于阳光的分析就到此结束了

55920

植物大战僵尸:无限阳光辅助开发

从本节课开始我们将进入实战环节,我们将手动分析植物大战僵尸的一些功能的实现并编写辅助,并根据章节的深入一步一步的完善我们的辅助,为啥这里使用植物大战僵尸呢?...本来想使用网络游戏的,但涉及到驱动过保护和版权的问题暂时不能够分析,准备分析一些大型单机游戏的后来发现调试起来不太方便,不如就用植物大战僵尸。...这一小关我们将完成植物大战僵尸里面的阳光值的修改,以下实战内容使用了CE基础篇的第1关与第4关的搜索技巧,如果你不是很熟的话,可以去看一下这两关,本关是最简单也是最重要的一关 游戏内存的遍历(找到基地址与偏移...5.点开这条汇编代码,add [eax+5560],ecx 这条指令很明显,就是将ecx的数值,赋值给[eax+5560],一级偏移找到了5560,那么我们继续记下EAX=146C1B60,并再次完成搜索...3.写入以下代码。 4.点击读取,与改写依次测试 5.最后生成作弊器,即可步骤如下。 ok,易语言很强大,后期的所有实战教程都会与易语言和CE打交道。

70320

植物大战僵尸:辅助制作高级技巧

方框中,此时我们回到CE中(自动汇编窗口不要关闭),在内存查看器窗口选择【视图】->【内存区域】 我们需要浏览内存区域,找出一个具有读写权限的空地址,并且类型为映像的,这里还需要看后面的模块一定要是植物大战僵尸文件里的模块...跟随【00DF0000】这个地址即可看到如下代码,没错!这些代码正是我们在CT表中分配的,当执行完获取数据以后则会自动跳转到原始地址【0048982B】继续执行原始代码。...无冷却遍历技巧: 打开CE-> 搜索类型选择字节类型-> 在植物亮的状态时搜索1 拿起植物-> 搜0 -> 放下植物搜1 ->拿起植物搜0-> 一直重复-> 地址一般在最后面 1.首先你要通过上面的遍历技巧找到这个动态地址...,将其锁定1后植物即可无限种植,效果如下所示: 2.接着在该地址上面右键,选择【是什么改写了这个地址】,然后我们回到游戏,拿起植物然后直接右键放下,会出现两条汇编指令。...汇编代码分析: @当我们放下植物后出现:0040CDEA - C6 44 08 70 01 - mov byte ptr [eax+ecx+70],01 { 1 } @当我们拿起植物后出现:00488E73

88520

植物大战僵尸植物栏无冷却的找法

实验目标:通过使用CE遍历内存,定位到植物无冷却的核心代码处,并通过修改关键的跳转来实现所有植物的无冷却。...1 拿起植物-> 搜0 -> 放下植物搜1 ->拿起植物搜0-> 一直重复-> 地址一般在最后面 第一种遍历修改方式 1.打开CE附加植物大战僵尸,然后种植一颗向日葵,搜索未知初始化数据。...5.接下来我们使用OD直接附加进程,然后直接【F9】运行程序,默认会停在系统领空,直接按下【Ctrl + G】输入【00401000】去程序领空,接着搜索【0048728C】会看到如下代码。...我已经将代码的大体功能分析的差不多了,这里我们有多种破解思路,第一种是直接将计时器的时间改大,这样植物的冷却时间会变快,或者直接将如下【JLE】直接【NOP】填充,由于所有的植物都会使用这一个计算冷却的...5.接着我们使用OD附加游戏进程,然后跳转到【0040CDEA】这个地址处分析一下代码,此处我们将【0040CDEA】处的代码的操作数改成0则可以实现无冷却,效果和上方截图相同。

86630

植物大战僵尸:寻找阳光掉落Call

通过查找访问代码,就能找到一级偏移是768,继续记下00FE4170然后回到CE继续搜索。 到这里基地址出来了,其公式为[6A9EC0+768],从这里也可以看出,这应该是一个通用对象地址。...最后,我们整合并写出以下汇编代码,然后使用注入器注入到游戏测试。...CloseHandle(hProcess); } int main() { for (int i = 0; i < 10;i++) InjectCode(3644, AddSun); } 至此我们的植物大战僵尸关于阳光的分析就到此结束了...,其他的比如植物无敌,植物攻击加速等,就留一个作业,大家开动脑筋看能不能自己实现,回顾前面所讲的外挂制作技巧,你是否已经完全理解了呢?...如果你能够吃透这些基础知识,那么相信你可以做出植物无敌,攻击加速等其他变态功能,其实逆向就是一个思路的问题,大家要多去思考,多去尝试,相信你会成功的!

61520
领券