游戏辅助制作核心--植物大战僵尸逆向之阳光生产加速实现满天星(四)2

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

一.效果

二.思路

其实这篇主要是上一篇的启发,上一篇是通过修改esi+5538的值来实现漫天星,这一篇主要是通过直接调用call来实现,好处不言而喻!

三.实现

(1)获得加阳光的地址.

413bf8

(2)获得出现阳光的call.

上一篇文章中 知道 这个jg是判断大小的 大于0的话就跳转,然后向后执行可以看到两个call 第一个call经过测试 是计算用的 计算比如植物下落的位置,eax的值,也就是阳光计数的重置值,所以这个call就是一个计算call.

那么下面还一个call 而且传入了4个参数 比较像太阳花下落的call

因为阳光下落的一般肯定是需要几个参数的

1.x坐标

2.阳光的对象,比如:阳光的图像是啥,阳光的下落坐标等.

然后就可以调用了

正好这个call前面是4个参数 比较像调用call

而且如果按照编程流程来说 还挺符合编程逻辑

正常情况来说 阳光下落 就几个逻辑

第一:阳光下落,重置计数器

第二,重置计数器,阳光下落

而这就比较符合第二项 所以最好的办法可以测试一下 就是直接把这个call nop了 会发现确实不下阳光了。但是会游戏奔溃 这个没关系 只是堆栈不平衡导致的,我们要的效果已经实现了。

(3)获得相应的参数的意义。

想进入这个call 之前肯定需要把原先的计数器置1或者修改jg 才能进入

这里可以看到 几个是常数 只有edi是不知道的 但是经过几次测试发现edi好像是x的坐标 也就是说可以随意给

esi不知道 但是从寄存器上看很像一个对象。那么只要找到这个esi的基质 就可以完成调用。

其实在第一篇文章中 找阳光的时候 我们就已经找到了基质,阳光的基质是6a9f38 + 768 +5560 而这个计数器的基质是6a9f38 + 768 +5538其实是相隔不远的

那么我们猜测是不是跟这个对象有关系 我们直接dd [[6a9f38] + 768]

发现这两个值正好是一直的 那么ecx的值 也有了 我们就可以直接调用了

上神器 代码注入器 试试   上图中的太阳花动画call的地址是40cb10 忘记改回来了

当我们点击注入的时候发现在最左边确实有一个阳光

至于第2个参数 4或者6 自己试下就知道了

这种方法的好处是 我们可以自己控制下落多少个 不至于满天都是 但是也可以弄的满天都是

 

猜你喜欢

转载自blog.csdn.net/qq_33958297/article/details/82352291