实验目标:通过遍历阳光产生的时间,寻找阳光产生的本地Call,使用代码注入器注入,自定义生成阳光

阳光CALL遍历技巧:

进入植物大战僵尸-> 当出现阳光后->马上搜索未知初始数值

返回游戏->  马上切回CE->  搜索减少的数值 -> 掉一点搜一点

最后排查出它的掉落地址-> 锁定1即可实现无限掉落

1.首先CE打开游戏,然后进入植物大战僵尸,当出现阳光后我们暂停游戏,并马上搜索未知初始数值。

2.返回游戏,让阳光下落一点点, 马上切回CE,搜索减少的数值 -> 掉一点搜一点。

3.经过我的不断排查,最后排查出以下结果,我们将其加入到地址列表中,依次将我们找到的这几个地址锁定为1,看是否有反映。

4.此处我已经找到了。

5,我们直接在找到的地址上右键,选择找出是谁访问了这个地址,或选中这一行按下【F5】也可以,如下我们需要记下【00413BCB】这个内存地址,然后直接关闭CE,接下来我们要使用OD调试了。

6.打开OD直接附加植物大战僵尸进程,【F9】让程序跑起来,按下【Ctrl + G】输入【00413BCB】,定位代码,然后在该位置按下【F2】下一个断点。

此时往上找,有一个JNZ的跳转指令,我们双击在此处下一个【F2】断点,然后运行游戏,此时会断下,此处的JNZ如果成功跳转则不会生成阳光,那么我们把此处NOP掉看看会出现啥结果。

7.如上图,如果我们将其NOP掉的话,回到游戏会发现无限的出现阳光了,也就是说阳光的CALL就在他跳过的这些指令当中。

8.观察它跳过的代码片段,我们找一下有没有阳光生成的CALL,如下我发现了一些带有参数传递的CALL,这可能就是阳光的生成CALL了。

9.在PUSH的位置上下【F2】断点,然后运行程序并等待阳光生成,生成后会断下【F8】单步跟随,将其中的寄存器参数记录下来。

10.使用代码注入器测试效果,默认的PUSH参数是4出现的是正常的阳光,如果我们将其改成6则会出现一个大的阳光。

11.如果将注入的参数改为 push 1 和push 3 那么屏幕上将出现钻石。

也可以下钻石雨!很漂亮但很危险,容易崩溃!

详细分析笔记,猛戳这里:https://blib.cn/post/4ed8.html

植物大战僵尸:寻找阳光掉落Call调用的更多相关文章

  1. 32位汇编第六讲,OllyDbg逆向植物大战僵尸,快速定位阳光基址

    32位汇编第六讲,OllyDbg逆向植物大战僵尸,快速定位阳光基址 一丶基址,随机基址的理解 首先,全局变量的地址,我们都知道是固定的,是在PE文件中有保存的 但是高版本有了随机基址,那么要怎么解决这 ...

  2. 原生JS实现的h5小游戏-植物大战僵尸

    代码地址如下:http://www.demodashi.com/demo/12755.html 项目介绍 本项目是利用原生js实现的h5小游戏-植物大战僵尸,主要结合了一下自己对于h5小游戏的理解,结 ...

  3. [Android] 转移“植物大战僵尸2”存档的办法,无需root

    作者:zyl910 查过了很多文章,都说需要root后才能转移存档.但很多时候是不能root的,此时该怎么办呢? 我研究了很久,最终找到了一种办法,无需root也能转移存档. 一.备份 我用的是联想手 ...

  4. java小项目之:植物大战僵尸,这个僵尸有点冷!内附素材源码

    Java小项目之:植物大战僵尸! <植物大战僵尸>是由PopCap Games开发的一款益智策略类单机游戏,于2009年5月5日发售,这款游戏可谓是无人不知无人不晓. 在我身边,上到40岁 ...

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

    实验目标:通过遍历寻找召唤僵尸的CALL,通过调用CALL出现自定义的僵尸,加速僵尸的出现. 僵尸CALL的遍历技巧: 我们可以通过僵尸出现在屏幕中的个数来遍历寻找僵尸出现的CALL 首先打开CE-& ...

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

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

  7. 图论(网络流):COGS 410. [NOI2009] 植物大战僵尸

    410. [NOI2009] 植物大战僵尸 ★★★   输入文件:pvz.in   输出文件:pvz.out   简单对比时间限制:2 s   内存限制:512 MB [问题描述] Plants vs ...

  8. P2805 [NOI2009]植物大战僵尸

    题目地址:P2805 [NOI2009]植物大战僵尸 最大权闭合子图 若有向图 \(G\) 的子图 \(V\) 满足: \(V\) 中顶点的所有出边均指向 \(V\) 内部的顶点,则称 \(V\) 是 ...

  9. 【刷题】BZOJ 1565 [NOI2009]植物大战僵尸

    Description Plants vs. Zombies(PVZ)是最近十分风靡的一款小游戏.Plants(植物)和Zombies(僵尸)是游戏的主角,其中Plants防守,而Zombies进攻. ...

随机推荐

  1. JAVA之G1与CMS垃圾回收

    G1 GC,全称Garbage-FirstGarbage Collector,通过-XX:+UseG1GC参数来启用,作为体验版随着JDK 6u14版本面世,在JDK 7u4版本发行时被正式推出,相信 ...

  2. LVS集群

    集群: 将许多小的,性能较低的服务器做成一个大的性能高的超级服务器 集群分为负载均衡集群,高可用集群,高性能运算集群 LVS体系结构与工作原理描述 LVS集群负载均衡器接受服务的所有入站客户端计算机请 ...

  3. 解决android sdk docs帮助文档打开慢的问题

    解决android sdk docs帮助文档打开慢的问题 转https://blog.csdn.net/yang5726685/article/details/80543849 经查是因为本地文档中的 ...

  4. mybatis一对多映射【班级与学生】

    1)如图 2)创建grades.sql和students.sql drop table students; drop table grades; create table grades( gid in ...

  5. Swift3.0项目学习: 创建撰写按钮

    import UIKit class PSMainViewController: UITabBarController { override func viewDidLoad() { super.vi ...

  6. Two-stream双流总结

    1.2014.Two-stream convolutional networks for action recognition in videos 两个流:空间流做single frame,时间流做m ...

  7. 深入解析d3弦图

    记得上次看d3应该是1年前的事情了,当时还一边看一边写了d3(v5.7)的一个学习笔记:https://www.cnblogs.com/eco-just/tag/d3/ 后来转战three.js就没继 ...

  8. centos7.2 mysql tar.gz 搭建 (亲测成功)

    1.安装依赖:yum -y install libaioyum search libaio 2.卸载系统自带的Mariadb数据库:rpm -qa | grep mariadbrpm -e --nod ...

  9. SpringBoot: 6.文件上传(转)

    1.编写页面uploadFile.html <!DOCTYPE html> <html lang="en"> <head> <meta c ...

  10. C#大文件流式压缩加解密

    * * , CancellationToken token=default) { try { FileStream zipStream = new FileStream(writeFile, File ...