C1任务01植物大战僵尸修改

目录

挑战

植物大战僵尸开挂,以达到跳关、无限金币,知晓游戏存档保存位置并修改存档数据以达到开挂的目的,但是要完成这些就要了解计算机对二进制数据的处理机制,要是了解这些修改存档就是简简单单,单机游戏开挂就不是问题。

说明

  1. 了解二进制、十六进制对计算机的意义
  2. 掌握二/八/十/十六等多种数据及间的转换进制
  3. 掌握如何保存修改的数据

内容

  1. 修改《植物大战僵尸》的存档文件,将一个新用户的游戏进度进行修改跳关,修改金钱数量
  2. 解锁所有模式

一、任务实现工具:

游戏:植物大战僵尸中文版

链接:
https://pan.baidu.com/s/1JcwS-i_-23SL1pi8Qzp3vA
提取码: qiry

十六进制编辑器:Hex Editor Neo

链接:https://www.hhdsoftware.com/free-hex-editor

二、任务实现过程

1、修改关卡

1.先创建一个游戏名(名字可以任意取)然后去
C:\ProgramData\PopCap Games\PlantsVsZombies\userdata
找到user2.dat的文件
ps:user2.dat这个文件对应我的游戏账号,user2.dat中的2是因为我之前创建过一个账号,之后随着创建的账户越来越多,数字会不断增大。不必在意我这个文件名去找user2.dat,一般名称为user1.dat。
2.将user2.dat在Hex Editor Neo中打开,并将数据备份。
之后进入游戏每进行一关保存后在Hex Editor Neo中打开user2.dat文件进行对比查看规律
1-1
在这里插入图片描述
1-2
在这里插入图片描述
1-3
在这里插入图片描述
发现04列第一行所对应的数字发生变化,当关卡为1-1时,数据为“01”

当关卡为1-2时,数据为“02”,当关卡为1-3时,数据为“03”,所以04列第一行所对应的数字为关卡存档数据。我将04列第一行所对应的数据改为“09”,保存并运行游戏发现关卡到达1-9,随后我进行一局游戏道1-10,打开存档发现数据变为“0A”,由此得知存档数据以十六进制进行保存的,由此推出5-1的存档数据为“29”,我将数据改为“29”
在这里插入图片描述
在这里插入图片描述

保存进行游戏关卡跳转到5-1,由此得知我的推测为正,跳关成功。

2、修改金币数量

现在游戏中金币为0,用同样的方法打开存档文件备份,接着玩直到打到金币,打开存档文件进行数据对比
金币0:
在这里插入图片描述
在这里插入图片描述
金币20
在这里插入图片描述
在这里插入图片描述
通过数据对比发现08列第一个数据发生改变,因此猜测08列下的数据为记录金币的信息,将这里的数据改为ff,重新进入游戏查看金币数量是否发生变化

重新进入游戏进入游戏发现金币数量发生了变化,金币数量变为2550,ff对应的十进制数据为255,因此证明植物大战僵尸中的金币储存数据规则为十六进制对应的十进制数据*10
在这里插入图片描述
因为游戏中10000金币对应的十进制数据为1000,
在这里插入图片描述
对应的十六进制数据为3e8,将08 09两列数据分别改为3e 08
在这里插入图片描述

重新进入游戏
在这里插入图片描述
发现金币数量并不是预想的10000,而是21100,金币21100的十进制数据为2110转为十六进制为83e在这里插入图片描述
由此猜测09列的数据为高位,并不是按照惯性思维从08列开始依次排列的,所以重新修改08 09列的数据改为e8 03
在这里插入图片描述
重新进入游戏发现金币为10000
在这里插入图片描述
所以修改成功.

3、解锁所有模式

解锁后面的关卡,对于这个有游戏的逻辑,得拿到冒险模式的奖杯。只能继续游戏,拿到奖杯,之后观察数据变化在这里插入图片描述
在这里插入图片描述
可以看出冒险模式又变回了1,0c列处数据变成了1。
为了验证是否改变此两处数据就能解锁,我有新建一个用户,改变数据,运行游戏确实解锁所有模式,所以将04列数据修改01 0C列数据修改为01,解锁所有模式,到此修改关卡成功。

我是一名刚学编程的小菜鸟,这是我第一次写博客,此博客若有错误,和不妥请各位大佬指正;感谢各位阅读!!!!写的不好请各位谅解!!!!!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值