挑战
- 修改「植物大战僵尸」的存档文件,将一个新玩家的关卡进度直接修改到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;