namedlxd 发表于 2019-5-3 21:54

植物大战僵尸植物叠加种植

本帖最后由 namedlxd 于 2019-5-6 21:35 编辑

今天我们来研究一下如何在一个位置放多个植物。
首先来思考一下放植物的流程:
选择植物选择地面位置
if ( 位置可以放植物) {   
    扣除阳光   
    放下植物   
    设置植物冷却   
    设置该位置为已使用   
    ......
} else {   
    提示不能放植物

因为没有看过源码,所以猜测的流程大致如此,不难得出,如果我们要在某个位置放多个植物,稍加思考可以从两个地方入手:
[*]在if判断处使它总是跳转到能放植物处代码
[*]修改地面位置为未使用

当然可能这两种方法都是错误的。不妨事,我们先来看看第一种方法。
我们要找到种植物相关的代码,所以我们可以从阳光入手。首先使用CE找到阳光地址。



接下来右键查看谁改写了这个地址,我们放下一个植物可以看到有一条记录,我们记下0041BA76这个地址:



接下来我们就需要用另外一种调试工具了:OllyDbg
我们打开OD,附加进程,可能附加失败,我们把CE关掉就好了。
打开后ctrl+g,输入0041BA76,跳转到程序开始位置,一次可能跳转不到,再跳一次即可。此时我们看到的就是CPU执行的汇编指令了,我们在这段代码的段首下断点。



回到游戏中种下一棵植物,OD会断下来,我们看OD的右下角的堆栈信息追溯回去。



我们可以把这个call标记为减少阳光call,当然不一定正确。



往上翻再次找到函数头部并下断。
我们在能种植物的地方种植物,发现OD会断下来,我们单步调试往下走,标记出来每个跳转是否实现,跳转的标记为1,不跳转的标记为0。



然后再在一颗植物上种植物,OD会断下来,我们单步调试往下走,找到不同的跳转。
我们会发下这条指令在空白区域种植物时是实现的,在有植物的地方种植物是未实现的。那么这条指令很可疑,我们把它改为永远跳转试一下。



"右键" -> "汇编" 把je(jump equal)改为 jmp(无条件跳转),单击汇编。





进入到游戏中,就会发现可以叠加种植植物了。



给大家一个CT吧,hook的那一段代码。不一定适用各个版本


链接: https://pan.baidu.com/s/1y25X5iS_y6WMsfZ43NtKhA 提取码: 1ekv 复制这段内容后打开百度网盘手机App,操作更方便哦

无瑕黑心肠 发表于 2019-5-4 02:56

本帖最后由 无瑕黑心肠 于 2019-5-4 03:13 编辑

楼主的图片挂了,我尝试修复了一下,以下是我找回的内容:

今天我们来研究一下如何在一个位置放多个植物。
首先来思考一下放植物的流程:
选择植物选择地面位置if ( 位置可以放植物) {    扣除阳光    放下植物    设置植物冷却    设置该位置为已使用    ......} else {    提示不能放植物}
因为没有看过源码,所以猜测的流程大致如此,不难得出,如果我们要在某个位置放多个植物,稍加思考可以从两个地方入手:
[*]
在if判断处使它总是跳转到能放植物处代码
[*]
修改地面位置为未使用

当然可能这两种方法都是错误的。不妨事,我们先来看看第一种方法。
我们要找到种植物相关的代码,所以我们可以从阳光入手。首先使用CE找到阳光地址。

接下来右键查看谁改写了这个地址,我们放下一个植物可以看到有一条记录,我们记下0041BA76这个地址:

接下来我们就需要用另外一种调试工具了:OllyDbg
我们打开OD,附加进程,可能附加失败,我们把CE关掉就好了。
打开后ctrl+g,输入0041BA76,跳转到程序开始位置,一次可能跳转不到,再跳一次即可。此时我们看到的就是CPU执行的汇编指令了,我们在这段代码的段首下断点。
回到游戏中种下一棵植物,OD会断下来,我们看OD的右下角的堆栈信息追溯回去。

我们可以把这个call标记为减少阳光call,当然不一定正确。

往上翻再次找到函数头部并下断。
我们在能种植物的地方种植物,发现OD会断下来,我们单步调试往下走,标记出来每个跳转是否实现,跳转的标记为1,不跳转的标记为0。

然后再在一颗植物上种植物,OD会断下来,我们单步调试往下走,找到不同的跳转。
我们会发下这条指令在空白区域种植物时是实现的,在有植物的地方种植物是未实现的。那么这条指令很可疑,我们把它改为永远跳转试一下。

"右键" -> "汇编" 把je(jump equal)改为 jmp(无条件跳转),单击汇编。


进入到游戏中,就会发现可以叠加种植植物了。

boy7928 发表于 2019-5-3 22:24

为啥图片加载不出来

moveto00 发表于 2019-5-3 22:42

为啥图片加载不出来

Fxmles 发表于 2019-5-3 22:52

图挂了..

再好的网名 发表于 2019-5-4 00:29

这个厉害了

hongge 发表于 2019-5-4 00:51

图片挂了

ghoob321 发表于 2019-5-4 07:23

这个更厉害。

考夫卡的猫 发表于 2019-5-4 07:39

找回有点厉害啊

15039326231 发表于 2019-5-4 07:54

修改器里啥也有
页: [1] 2 3 4 5 6 7 8
查看完整版本: 植物大战僵尸植物叠加种植