信息编码的运用-如何修改游戏数据

挑战

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

说明

  • 了解二进制、十六进制对于计算机的意义
  • 掌握二/七/八/十/十二/十六等多种数据进制间的转换
  • 掌握如何在windows及linux中修改并保存二进制文件

操作要求

  • 电脑系统为win10 64位
  • 游戏版本为英文原版 v1.0.0.1051
  • 数据文件(dat文件)编辑器为Hex Editor Neo

任务探索

  • 进入游戏之后,创建新用户,用户名为“Aichard”,然后寻找该用户的游戏存档位置;C:\ProgramData\PopCap
    Games\PlantsVsZombies\userdata,新用户的存档文件为:user1.dat,用Hex EditorNeo打开如图:

  • 关卡01:

此时处于第一关

  • 关卡02:
    在这里插入图片描述
  • 关卡03:
    在这里插入图片描述
  • 由上边三幅图可知关卡的变动是由04的改变而改变的
  • 修改地址04的数据,保存存档文件后,进入游戏看关卡是否已经改变;修改数据为“10”,进入游戏发现关卡已经改变为:

在这里插入图片描述

  • 多次调试后发现关卡04对应的数值为十六进制,所以我们只需计算出42的十六进制为2a即可:
    在这里插入图片描述
    在这里插入图片描述
  • 来到5-2关后我们的商店解锁了,此时的金币为0:

在这里插入图片描述

  • 进行一局游戏后金币为10:

在这里插入图片描述

  • 然后观察表后发现08的数据从00变到了01,猜测金币数量是该数据十进制值的十倍;在这里插入图片描述

  • 地址08能存储的金币最大值是2550枚(ff的10倍),商店里有很多商品的价格都超过了2550,所以应该是使用了多位地址存储金币数量;经验证,地址08-0B按照从字节低到高的顺序存储了金币数量;

  • 修改地址08-0B数据为e8 03 00 00,经验证,游戏内金币数量已改为10000;
    在这里插入图片描述
    在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

优秀所致

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值