实验目标:通过遍历阳光产生的时间,寻找阳光产生的本地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. vscode 遇到 TabError: inconsistent use of tabs and spaces in indentation

    Python开发,全靠缩进来控制Scope.缩进搞错了,代码也就有问题了.所以写着代码的时候,总是会遇到一个非常常见的问题.TabError: inconsistent use of tabs and ...

  2. django 快速实现注册(四)

    一.创建项目与应用  #创建项目fnngj@fnngj-H24X:~/djpy$ django-admin.py startproject mysite3fnngj@fnngj-H24X:~/djpy ...

  3. cs231n lecture2 image classification

    1.图片分类若采用最近邻法: import numpy as np class NearestNeighbor: def _init_(self): pass def train(self, X, y ...

  4. JavaScript中原型链存在的问题解析

    我们知道使用原型链实现继承是一个goodway:)看个原型链继承的例子. function A () { this.abc = 44; } A.prototype.getAbc = function ...

  5. 最新create-react-native-app搭建rn教程

    一.前置条件: 1.nodeJS环境 2.npm 3.yarn 二.安装及项目初始化 1.安装脚手架 npm install -g create-react-native-app 2.用脚手架初始化创 ...

  6. 使用Python爬取mobi格式电纸书

    最近做了个微信推送kindle电子书的公众号:kindle免费书库 不过目前电子书不算非常多,所以需要使用爬虫来获取足够书籍. 于是,写了以下这个爬虫,来爬取kindle114的电子书. 值得注意的地 ...

  7. 抓包工具Fiddler使用

    1.参考博客 https://blog.csdn.net/ychgyyn/article/details/82154433 https://www.cnblogs.com/miantest/p/728 ...

  8. 使用nginx实现动静分离的负载均衡集群

    一.概述: LB负载均衡集群分两类: LVS (四层)和 nginx或haproxy (七层) 客户端通过访问分发器的VIP来访问网站 |现在应用更复杂,比如现在网站页面有: .php .html . ...

  9. 权限控制(delphi actionlist)

    权限控制(delphi TActionList方案)在软件开发中,为软件加入权限控制功能,使不同的用户有不同的使用权限,是非常重要的一项功能,由其在开发数据库方面的应用,这项功能更为重要.但是,要为一 ...

  10. pyinstaller发布exe,弹出Failed to execute script main

    1.在PyCharm中按Alt+F12打开Terminal对话框 1.1我的项目文件放在wxpython目录下,D:\learn\Weather index insurance\wxpython> ...