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

一.思路

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

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

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

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

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

二.实现

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

 

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

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

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

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

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

执行到返回

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

(3)定位阳光call.

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

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

 

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

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

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

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

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

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

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

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

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

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

(5)定位点击函数

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

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

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

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

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

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

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

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

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

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

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

 

你可能感兴趣的:(游戏逆向)