逆向实战干货,植物大战僵尸快速定位自动捡阳光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比较是自动收集阳光

下面的没有测试出来什么结果.好了,现在分析去吧

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏极客猴

Python定时任务(下)

上篇文章,我们了解到有三种办法能实现定时任务,但是都无法做到循环执行定时任务。因此,需要一个能够担当此重任的库。它就是 APScheduler。

32130
来自专栏北京马哥教育

精通Linux常用的100+命令大全万字详解长文(珍藏版)

运维行业正在变革?推荐阅读:30万年薪Linux运维工程师成长魔法 Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作、文件存取、目录操作、...

605100
来自专栏c#开发者

消息队列(Message Queue)简介及其使用

消息队列(Message Queue)简介及其使用 利用 MSMQ(Microsoft Message Queue),应用程序开发人员可以通过发送和接收消息方...

51780
来自专栏xx_Cc的学习总结专栏

iOS-网络编程(一)HTTP协议

33190
来自专栏行者悟空

CentOS Linux安装nginx及负载均衡的配置

13530
来自专栏非著名程序员

如何使用AndroidStudio将开源项目library发布到jcenter

我相信技术爱好者都喜欢开源,也都喜欢分享,随着技术的慢慢提高,很多开发者想将自己的开源类库分享出来,对于Android开发者来说,以前使用Eclipse开发时,...

20470
来自专栏祥子的故事

python | os包常用命令介绍

40550
来自专栏后端技术探索

nginx入门到入门

用户访问反向代理服务器。但是用户不知道访问的是反向代理服务器多个站点中的哪一个站点。对服务器服务。

9820
来自专栏七夜安全博客

小知识点--crontab

这两周学了很多东西,还把golang语言基本掌握了,收获还是挺多的。在做安全的过程中,有很多需要定时执行的任务,比如抓取主机数量,端口数据等,这都逃不开linu...

8720
来自专栏丑胖侠

Zookeeper开源客户端Curator之基本功能讲解

简介 Curator是Netflix公司开源的一套Zookeeper客户端框架。了解过Zookeeper原生API都会清楚其复杂度。Curator帮助我们在其基...

37750

扫码关注云+社区

领取腾讯云代金券