C1认证:修改《植物大战僵尸》的存档文件

在这里插入图片描述

首发至个人博客:C1认证:修改《植物大战僵尸》的存档文件

任务简介

1、修改《植物⼤战僵⼫》的存档⽂件,能跳到指定关卡5-1
2、修改《植物⼤战僵⼫》的存档⽂件,让你的游戏账户有1W⾦币
3、同时通过修改关卡完成下⾯的任务:

  • 修改关卡后能解锁「迷你游戏」
  • 修改关卡后能解锁「⽣存模式」

资源下载

C1第一个任务的所需资源:Plants vs Zombies


数据文件

本次所用的为《植物大战僵尸1单机版》,所以他的一些数据包括用户数据,肯定也会放到本地,至于准确地址我直接贴出来:C:\ProgramData\PopCap Games\PlantsVsZombies\userdata
每个用户的数据都不同,所以会分用户来存储。

这个地址是无论 安装版 还是 免安装版 都是这个路径,针对你新建账户的顺序,每个用户的用户数据命名为:user1.datuser2.dat
而所有的用户数据都存放在 users.dat 中。


指定关卡

为了了解通关后用户数据的变动,先用 Hex Editor Neo 打开需要观察的用户数据文件:
在这里插入图片描述

为了能更直观的观察到编码,我将数据格式切换到了十进制显示:
在这里插入图片描述

现在已经有了用户初始的数据,那么就开始去让这些数据发生变化,当将第一关过关后显示的数据如下:
在这里插入图片描述
很明显,在 第一行的04列 就是冒险模式的关卡数。而后又进行了几次尝试,发现了以下的规律:

数值关卡数
11-1
21-2
······
101-10
······
202-10
······

而最大限度并不知道是多少,一开始踩了不少坑,现在直接说结果:搜索了以下植物大战僵尸僵王的关卡数:僵王博士 ,发现最大关卡数为 5-10 ,所以直接修改数值为 50
在这里插入图片描述
到此就完成了关卡数的修改。


修改金币

虽然现在一口气跳到了冒险模式的最后一关,但是金币数却还是为零。所以,同样的思路,先去修改金币的值。

好在破解关卡后会有一颗植物会产生金币:
在这里插入图片描述

于是又玩了一把游戏,收取到了金币后退出,保存用户数据,再次打开用户数据文件:
在这里插入图片描述

数值为 n ,则金币就为 n*10 ,所以就可以随意修改金币的值,经过测验,保存金币数的有三个地方:第一行的08 、09、0a:
在这里插入图片描述
到此就完成了金币的修改。


解锁新关卡

至于解锁后边的关卡,对于游戏的正常逻辑来说,就是要拿到冒险模式的奖杯。没办法,又去玩游戏去了~
等到游戏通关后,确实拿到了奖杯,后面的关卡都开了,于是又去看用户数据的变化:
在这里插入图片描述
可以看出,冒险模式的关卡数又变回了 1 ,而 第一行的0c 处变成了 1 是不是就是这里的数值导致了后面关卡开启呢?
为了验证,新建了一个账户,修改数值,发现确实就是这里。

到此,就完成了后续关卡的开启。


拓展

关于后续开启的三种模式,我也用同样的思路去查看,发现确实都是这样的,比如 迷你模式 中的关卡就是 从第二行开始的每一列0c处的数值改为 1。其余的也都是这样,需要的可以自行查看,思路都是可行的,我也都尝试过,只是这里的数据丢失了,就不写在这里了。


修改阳光

到最后,我想再试着修改游戏时阳光的值,但是用 Hex Editor Neo 修改的难度和之前有了一定的差距:主要是因为这是游戏的设定,并不属于用户本身。
作为 强迫症本强,决定用 CheatEngine6.8.1 来进行修改体验一把,具体的过程如下:
先打开游戏,再打开 CheatEngine ,选择游戏的进程,打开:
在这里插入图片描述
为了能够改变阳光的值,所以需要再来一把游戏,在游戏开始时暂停,并在CheatEngine 中输入数值,点击首次扫描。
在这里插入图片描述
在扫描出结果后继续游戏修改阳光的值:
在这里插入图片描述
最后的结果只有一条数据,这其实就是阳光的数值,直接右击结果选择 改变已选择地址的数值 ,修改后,成功应用在了游戏上:
在这里插入图片描述
到此就结束了阳光的修改。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值