逆向实战干货,植物大战僵尸快速定位自动捡阳光Call,或者标志
逆向实战干货,快速定位自动捡阳光Call,或者标志
注意: 关于CE和OD的使用,这里不再多说,快速定位,默认大家已经有了CE基础,或者OD基础.
第一种方法,找Call
第一步,打开CE,搜索阳光值

第二步,打开OD,数据窗口中搜索这个地址的数值(073B7C10)
注意,OD要先附加一下


F9 把游戏运行起来,我们数据窗口搜索这个地址的数值

然后找到地址

第三步,对其里面的值下内存写入断点

然后回到游戏,捡起一个阳光

内存断点断下来了,我们看下指令,发现 add函数,而且看下ECX的值
16进制的19,那么10进制的25,所以我们判断这里是增加阳光的地方
但是我们根据我们的操作发现
点击阳光 -> 阳光增加, 那么我们找到了增加阳光,那么自然上找,就能到点击阳光的Call了
那么CTRL+F9运行到函数结尾,注意,要把内存断点删除,我们不需要了
第四步,看下返回的Call
到了函数结尾,是一个retn,所以我们按下F8键,单步一下,则会退出上面的那个函数
退出之后是就是下面的界面,我们发现也是一个Call,那我们就知道了,这个是增加阳光的CALL

现在我们用NOP指令,把这个CALL NOP掉,看下阳光还会增加吗

F9运行起来,看下阳光增加了吗

我们发现,阳光不会增加了,但是动画效果变了,那么可以肯定的是,这个Call里面有个单独的捡阳光的CAll
现在我们 ALT + 回退键,撤销刚才的NOP掉的地方,
回退键是什么,就是你打字, 打多了,然后删除一个字的那个键
第五步,自动捡阳光Call下段点,跟进去查看.
上面我们已经找到了那个Call,那么我们下段点,看看捡阳光的时候会来吗
但是我们遇到一个问题,因为OD下段点的时候,植物会有暂停的界面,然后点击返回的时候,这里也断下了
所以由此断定,它的上一层可能还有游戏暂停或者取消的判断,那么这个先不管,我们断下来了
F7跟进去看
现在我们在F7这个位置的地方下断点,然后撤销以前的断点
撤销以前的断点,看下地面的图

我们点击B这个按钮或者点击查看的地方

现在我们把Call下段点的地方,用Delete键删除,然后双击我们上面下段点的那个位置,可以跳转到我们下段点的位置

现在我们运行起来(F9)

现在我们可以看到,这个Call可能就是自动捡阳光的Call
第二种方法,找标志
现在我们找到的是Call,但是我们会想,他是怎么判断我们点击的哪
所以在此Call的基础上,再往上边找
注意,这个call使我们第四步返回的Call的位置,然后我们接着执行到函数结束,下断,看看来了吗

在这里CTR6 + F9找到我们上一层的那个CALL(也就是第四步返回的Call)

然后我们在这里下段点,运行植物大战僵尸,接着看看来了吗.
我们发现已经来了

那么,我们知道,它的上一层肯定有判断是否点击,所以接着CTRL + F9 返回到函数结尾,接着F8,然后返回上一层,

上面这张图就返回了上一层,如果没有看到比较,那么在来一次CTRL + F9
但是看上图放发现,他都与比较,CMP xxx,00,01比较,我们依次修改一下,看下有什么效果

我们修改周后,发现上面的 ebx + 0x50,和1比较是自动收集阳光
下面的没有测试出来什么结果.好了,现在分析去吧
逆向实战干货,植物大战僵尸快速定位自动捡阳光Call,或者标志的更多相关文章
- 逆向实战干货,快速定位自动捡阳光Call,或者标志
逆向实战干货,快速定位自动捡阳光Call,或者标志 注意: 关于CE和OD的使用,这里不再多说,快速定位,默认大家已经有了CE基础,或者OD基础. 第一种方法,找Call 第一步,打开CE,搜索阳光值 ...
- 32位汇编第五讲,逆向实战干货,(OD)快速定位扫雷内存.
32位第五讲,逆向实战干货,快速定位扫雷内存. 首先,在逆向之前,大家先对OD有一个认识. 一丶OD的使用 标号1: 反汇编窗口 (显示代码的地址,二进制指令,汇编代码,注释) 标号2: 寄存器窗口( ...
- 32位汇编第六讲,OllyDbg逆向植物大战僵尸,快速定位阳光基址
32位汇编第六讲,OllyDbg逆向植物大战僵尸,快速定位阳光基址 一丶基址,随机基址的理解 首先,全局变量的地址,我们都知道是固定的,是在PE文件中有保存的 但是高版本有了随机基址,那么要怎么解决这 ...
- iOS逆向实战与工具使用(微信添加好友自动确认)
iOS逆向实战与工具使用(微信添加好友自动确认) 原文链接 源码地址 WeChatPlugin-iOS Mac OS 版微信小助手(远程控制.消息防撤回.自动回复.微信多开) 一.前言 本篇主要实现在 ...
- 32位汇编第四讲,干货分享,汇编注入的实现,以及快速定位调用API的数量(OD查看)
32位汇编第四讲,干货分享,汇编注入的实现,以及快速定位调用API的数量(OD查看) 昨天,大家可能都看了代码了,不知道昨天有没有在汇编代码的基础上,实现注入计算器. 如果没有,今天则会讲解,不过建议 ...
- [原]调试实战——程序CPU占用率飙升,你知道如何快速定位吗?
原调试debugwindbghangprocess explorer 前言 如果我们自己的程序的CPU Usage(CPU占用率)飙升,并且居高不下,很有可能陷入了死循环.你知道怎么快速定位并解决吗? ...
- Mac 终端实现快速定位命令 自动补全目录
基于macOS oh-my-zsh 切换终端主题 incr.zsh 实现快速定位命令 自动补全目录 效果预览 步骤 1.安装 oh-my-zsh sh -c "$(curl -fsSL ht ...
- Linux性能优化从入门到实战:06 CPU篇:快速定位CPU瓶颈
CPU性能指标 (1)CPU使用率:1) 用户态CPU使用率(包括用户态 user 和低优先级用户态 nice).2) 系统CPU使用率.3) 等待 I/O 的CPU使用率.4) 软中断和硬 ...
- GIF Movie Gear逆向实战+注册代码+补丁
GIF Movie Gear逆向实战+注册代码+补丁 准备 我是在windows 8.1 x64上进行的操作.有不足之处,还望大虾指出. 获取资源 网站下载:http://www.gamani.com ...
随机推荐
- SAS 创建新变量
SAS 创建新变量 在对SAS数据集进行处理时,经常需要根据原有变量或变量值生成新变量.根据要实现功能的不同,SAS提供了多种方法,例如通过数据集选项RENAME=(RENAME语句).赋值语句.求 ...
- Python——教你画朵太阳花
用python中的turtle函数画个太阳花,有以下几个步骤 1.首先,我们在开始中找到Python语言的IDLE软件脚本 2.然后出现该软件界面,如图,点击上面的Eile 3.然后在 ...
- IDEA springboot 项目静态文件修改不更新的问题
springboot 项目的页面和静态文件,在项目启动后,修改无效.按照下面的配置可以解决问题. 1.file-setting 勾选项目自动构建 2.使用快捷键 ctrl+ shift+ alt + ...
- 2019浙江省赛K zoj4110 Strings in the Pocket(manachar)
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=6012 题意 给你两个串,可以翻转a串的一个区间,问有多少对l,r使得翻转后的a ...
- ASP.NET获取POST提交过来的数据流,转换成Json格式的字符串
public class Public { private static Public _instance = new Public(); /// <summary> /// 全局访问点 ...
- 整理CSS中display flex(布局利器)
关于display:flex布局,有人了解颇深,我也是看着别人的东西学习的. display:flex的布局是什么.基本概念之类的我根本就不了解,只会用.每次看到概念之类的东西,我都是扫一眼就过去. ...
- js 原型链解密
1.对象继承 javaScript的继承不是通过class实现的,而是通过“原型对象”(prototype). 1.每一个函数都有一个原型对象 2.每一个实例对象都有一个_proto_属性 2.原型链 ...
- 制作系统U盘
没有任何宣传软件成分昂,我就是这做的. 1.在百度搜索上搜索“通用PE大师”,点开了这个网站http://up.6615261.cn/index.html,打开之后如下图,下载这个二合一版本 2.在电 ...
- [转]深入理解 GRE tunnel
我以前写过一篇介绍 tunnel 的文章,只是做了大体的介绍.里面多数 tunnel 是很容易理解的,因为它们多是一对一的,换句话说,是直接从一端到另一端.比如 IPv6 over IPv4 的 tu ...
- 包建强的培训课程(14):Android与ReactNative
@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...