游戏辅助制作核心--植物大战僵尸逆向之自动捡取阳光(二)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_33958297/article/details/82352129

一.思路

前一篇文章中介绍了如何获得阳光,知道当点击阳关之后会有一个加的操作。

所以自动捡取的关键就是点击,也就是说如果你点击到了阳光上他才会增加。那么就可以得出一个大致的流程。

阳光下落->点击阳光->阳关地址增加。

这样的话 初步看应该最少有2个函数,第一个是出阳关的call,第二个就是判断是否点击到阳关然后增加阳关的call。

上一篇文章中中间说了一下 最好记录一下那个地址00430a11本篇就是通过这个地址来找到自动拾取的

二.实现

(1)首先进入游戏 OD附加 如果几篇文章一起看的朋友最好把CE的调试器去掉 不然OD不加不上 方法有很多 暴力的就是CE关闭。

 

(2)定位当前的地址 ctrl+G 输入00430a11 因为上面思路上说了 这个增加阳光应该是在一个call实现的.

所以我们这里先下断,进游戏点击阳光以后会断到这里。当阳关快被加上数值的时候 会被断下

这里为什么会是阳光的值 可以看下ecx ecx应该是19 也就是十进制的25 所以断定这里的增加阳关的.

扫描二维码关注公众号,回复: 3043119 查看本文章

执行到返回

(3)定位阳光call.

因为刚开始不一定知道这个就是增加阳光的call 所以最好的办法把这个call nop了同时下段 看游戏有什么反应

 

这时回到游戏 让游戏正常运行

然后会发现点击阳光之后 只有动画 但是数值并没有增加,所以确定这个call确实增加阳光的call 然后右键撤销

(4)这时我们可以注意到 他上面有一个jnz 也就是说 他可能有什么判断值才会进入这个call 我们在这个jnz下断 进游戏点击阳光.

此时会断在这里 但是跳转是成功的。那么我们多试几次看看这个是什么目的

当我们放行了十几次以后 发现阳光的位置变了,由此得知这个jnz主要目的是判断阳关是否到位,只有当阳光完全在左上角的时候才会真正执行增加阳光的call 后面就不上图了 当阳光到位之后 他确实会执行这个call 大家可以自己试试

而且上下看了下 这个函数很小 也就是说点击阳光的代码应该还在上一层 所以我们继续执行到返回

(5)定位点击函数

这里有我备注好的 自动采集阳光的 分析一下思路

这个增加阳光的call上面有跳转 可以看到 只有当这个jnz执行成功之后才会增加这个call 那么就简单了 我们直接在这个jnz上下断看看他的执行流程

然而会发现当阳关下落的时候这里就被断下了 ,那么说明这了肯定跟阳关的下落也有关系 返现他会执行到430ac0这个call 进call之后发现call特别大就没有跟

然后一直放行,但是发觉会一直断下来 ,同时也会发现 这个阳关的位置一直在向下,由此可以得出结论这个call可能是阳关下落跟执行动画使用的call 那么我们直接断在这个增加阳光的call上 试试 然后会发现当我们点击阳关的时候 会被断下 其实如果稍微有点破解经验的人应该知道怎么改了

这个是个很典型的if else 语句 也就是说 如果没有被点击 那么会一直执行动画call 如果被点击那么就会执行增加阳光的 call 所以这里的修改流程也很简单就是讲jnz 改为jmp 即可实现自动捡取阳光.

当我们修改之后 会发现阳关一出现 就自动增加了 根本不需要手动去点击 那么效果也就是实现了。

如果使用ce修改的话 只需要改动一个字节 就是内存添加43158f地址 把75修改成e8就可以了

 

猜你喜欢

转载自blog.csdn.net/qq_33958297/article/details/82352129
今日推荐