准备分析
游戏运行所需要的数据一般都是保存在内存中,以便随时获取,特别是一些经常修改的数值。
植物大战僵尸中的太阳值是一个经常变化的值,因此如果要修改它,必须先找到它在内存中的位置。
使用CE附加到游戏进程并准备搜索其内存。
检查游戏中当前的日照值。
在 CE 中执行第一次搜索。
搜索结果有773条,太多了,进入游戏,修改日照值,再进行第二次搜索。
结果只剩下一个,所以这就是你要找的内存地址。有时一个唯一的地址不会这么快出现,所以你只需要多改几次值然后搜索。
双击结果中的地址,将其添加到下方的地址列表中,修改地址值,在游戏中查看日照值,验证地址。
阳光值修改成功,证明地址正确。
不过这个内存地址只是暂时的,用来暂时保存当前游戏中的日照值,当你重新开始关卡或者开始另一个关卡时,保存日照值的地址就会改变。
但不管怎么变化,游戏总能准确找到保存阳光的地址。所以游戏中一定有一个基地址。通过这个基地址,作为地址指针,经过一系列的偏移,就能确定游戏每一句保存阳光值的地址。
现在已经确定了当前游戏中阳光值的地址,接下来通过查找哪些地址访问过该地址并进行回溯,就能够找到阳光的基地址。
使用CE查找哪些地址访问了当前的保存地址。
可以看出,有两个地址访问的是当前的阳光值地址,且两个地址都使用了 的偏移量修改器植物大战僵尸,因此寄存器的值是上一级地址指针中的值,也就是 。
使用 CE 搜索哪个内存保存指针。
结果有很多,可以一个一个排除,不过一般来说,和其他结果差别很大的那个才是我们要找的,我到现在还没搞明白为什么会这样。
这是结果中的第一个结果,已添加到地址列表。
查找哪些地址访问了该内存地址。
可以清楚的看到地址偏移量是0x768,寄存器里的值为。
查找方式同上,排除后有两个不确定地址,这两个地址都有固定的地址访问,且不同。
它们分别是和。
不过既然是基址,那么很有可能就是阳光值的基址,添加指针地址,重启游戏,确定基址。
最后发现这两个是游戏的基地址,呃!
可能是因为游戏版本的原因。两个基地址都可以使用。
最后对分析的数据进行整理。
阳光的基地址是:和。
偏移量为:0x0、0x768 和。
阳光地址的计算方法如下:
第二级指针 = [006A9EC0]
第一级指针 = [第二级指针 + 0x768]
阳光值地址 = [第一级指针 + 0x5560]
基于这些地址和偏移量,你可以编写程序来任意修改阳光。
标题:游戏分析练习记录:植物大战僵尸阳光值修改教程
链接:https://www.llthd.com/news/xydt/16980.html
版权:文章转载自网络,如有侵权,请联系删除!