《植物大战僵尸》游戏存档修改

说明

需求

知识

必要软件

原理

进行过程

总结

软件下载相关说明

相关链接

说明

需求

修改《植物大战僵尸》的存档文件,将一个新玩家的关卡进度直接修改到5-2关(跳关),金钱直接修改到10000

知识

二进制、十六进制对于计算机的意义
掌握各种数据进制间的转换
掌握如何修改并保存二进制文件

必要软件

Hex Editor Neo
《植物大战僵尸1》

原理

利用数据转换的原理进行修改存档,具体为通过使用“Hex Editor Neo”软件来打开关于存档的文件并记录相关数据,再打开游戏并且完成游戏中的一个关卡,退出游戏再次使用“Hex Editor Neo”软件查看存档文件,观察其中的变换规律。多次重复后得出一定规律。
通过利用之前所得出的规律来修改数据进行跳过关卡。
游戏内金币同理可以用跳过关卡的方法进行修改。

进行过程

进入游戏之后,创建新用户,用户名为“shenshu”,然后寻找游戏的存档文件位置C:\ProgramData\PopCap Games\PlantsVsZombies\userdata\user2.dat 如图:
这个位置一般来说藏得相对比较深,需要进行一部操作,如下图
这个位置一般来说藏得相对比较深,需要进行一部操作,如下图
通过这个步骤就能找到具体的文件位置了
通过这个步骤就能找到具体的文件位置了
游戏用户的存档文件为:user1.dat,用Hex Editor Neo打开如图:
在这里插入图片描述

想要修改存档来达到跳关目的,需要知道关卡数据存储在存档文件中的位置,所以,需要从关卡1-1玩到关卡1-3,每过一关,都将user2.dat文件备份,然后比较三份文件中的数据差异:
在这里插入图片描述
在这里插入图片描述

通过3次的查看,可以看到数据之间发生了变化。经比较,地址04的数据在每份存档中都不一样,
关卡1-1中,数据为“01”,
关卡1-2中,数据为“02”,
关卡1-3中,数据为“03”,
随着关卡的改变,发现可以进行修改地址04的数据,保存存档文件后,进入游戏看关卡是否已经改变;修改数据为“08”,进入游戏发现关卡发生了改变:
在这里插入图片描述
继续修改数据,多次进行后,发现关卡跟地址04的十六进制数据对应关系为:
关卡1-1,01
关卡1-10,0A
关卡2-1,0B
关卡2-10,14
依此类推
关卡5-1,29
关卡5-2,2A
关卡5-10,32

将04地址中的数据改为2A,第一项跳关实现,同时商店功能也解锁,但是数据为“0”.
在这里插入图片描述

在这里插入图片描述

扫描二维码关注公众号,回复: 12845450 查看本文章

这里再开始进行金币的数据修改。经过同样的进行游戏并查看可以发现金币是由地址08—0b的数据来确定的,所以修改这个地址就可以实现改变游戏内的金币。
例如:在地址08下面数据改为01.在这里插入图片描述
可以看到金币变为了10,而且经过测试发现一个地址08最多可以改变为16进制是(ff)能存储的金币最大值是2550枚(ff的10倍),因此游戏中最多金币总数为10200,但是如果08-0b都改为(ff)却会出现溢出成为-10,所以最多为10000金币,则修改08-0b的数据分别为e8 03 00 00 时金币为10000。
通过这样的方法就可以进行金币的修改。通过进制的转换理论上就可以随意控制游戏存档。

总结

电脑使用的是二进制系统,而对开发者来说,十六进制更紧凑,也更易读,所以数据文件基本都用二进制存储,而显示和编辑时,则使用16进制。

软件下载相关说明

Hex Editor Neo:
下载链接:(官网):https://www.hhdsoftware.com/free-hex-editor
因为官网下载可能会出现特别慢的情况,可以在下载的时候使用迅雷,实现相对高速的下载。
植物大战僵尸:可以在逗游官网进行免费下载。不过同时得下载逗游游戏盒子。

猜你喜欢

转载自blog.csdn.net/qq_54734645/article/details/115056880