一.效果
二.思路
其实这篇主要是上一篇的启发,上一篇是通过修改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 自己试下就知道了
这种方法的好处是 我们可以自己控制下落多少个 不至于满天都是 但是也可以弄的满天都是