目录
向日葵不断冒阳光
植物冷却时间
卡槽基址
向日葵不断冒阳光
种下向日葵后,会有一个计时器,时间在不断的减少,直到变为0时,向日葵
冒出一个阳光,计时器增大,根据计时器数值的减少,找到改地址,并进行修改
种一颗向日葵,我们并不知道计时器初始的值是多少,选择Unknowninitialvalue未知的初始值,进行首次扫描
根据计时器在不断的减少,选择Decreased value减少的值,进行再次扫描
一直不断进行再次扫描
在向日葵冒出阳光的时候,选择Increasedvalue增加的值,进行扫描
找到改地址后,将地址添加到CT条目栏中
将改地址的值修改为1,并点击方框,激活,会看到向日葵不断地冒阳光
对该地址右键,Findout what accesses this address查看是谁访问了它
点击Showdisassembler,查看该地址处的汇编语言
选择tools下的自动汇编,将该地址出的代码进行注入
这个就是每次计时器数减一,修改为减100,点击Execute。返回游戏中,可以看到,再种下一颗向日葵也会一直冒阳光。
植物冷却时间
豌豆射手处于可种植的时候,内存中的数值为0,种下一颗豌豆射手后,卡槽中豌豆射手处于冷却时间,数值不断增加,直到超过某个阈值,数值变为0,豌豆射手重新变亮,可以通过修改每次增加的数值,使其超过阈值,来改变植物的冷却时间。可以通过变动的数值查找,也可以通过增加的数值查找。
开始豌豆射手是可种植的,选择ExactValue精确的数值0,进行首次扫描
种下一颗豌豆后,进入冷却时间,选择变动的数值,不断进行扫描
直到豌豆射手变亮,选择精确的数值,进行再次扫描
找到该地址后,将数值改为1000,点击激活,我们可以看到植物可以一直点击
同样的方法,对该地址进行右键查看是谁访问了这个地址
add dword ptr [edi+24], 01 该地址的数值每次增加01
点击Showdisassembler,查看该地址处的汇编语言
选择tools下的自动汇编,将该地址出的代码进行注入
将01改为1000,点击Execute,可以看到所有植物都一直处于可种植状态。
卡槽基址
卡槽中的地址,在内存中一数组形式存储,第一个卡槽的地址是0,第二个是1,点击卡槽时,内存中的数值改变
开始选择未知的初始值,进行首次扫描
点击第一个向日葵,不种植,在CE中选择精确的数值0,进行再次扫描
将植物放回原处,选择Changedvalue变动的数值,再次扫描
点击第二个植物,不种植,选择精确的数值1,进行扫描
放回选择变动的值,进行扫描
点击第三个植物,同样的方法进行查找,找到该地址后,右键选择谁访问了这个地址
记录该地址可能的指针地址0x1E85E8D8和偏移量24
重新扫描该地址0x1E85E8D8
对找到的地址右键选择谁访问了这个地址
重新扫描新的地址,观察扫描出的地址,可以看到0x0277AAF8是比较特殊的一个地址,将地址添加到CT条目栏中
对地址0x0277AAF8继续右键查看谁访问了这个地址,纪录新地址和偏移量,对新地址进行扫描
找到绿色的基址后,双击该地址,添加偏移量,因为找了三次可能的指针地址,要添加三个偏移量
可以看到,添加偏移量后,基址指向之前第一次所找到的地址
当再次点击卡槽时,基址的数值发生改变。