《Plants Vs Zombies》游戏存档修改
挑战
有的玩家在玩游戏时,可能并不想⼀关⼀关地慢慢玩,⽽是希望可以直接跳到最后⼀关,或者从⾃⼰指定的关卡开始,⽐如
经典的《植物⼤战僵⼫》;再就是怎么能够「开挂」,得到更多的⾦钱、更⾼的属性、更强的道具,⽐如《三国志》系列。
任何游戏都会保存玩家的进度和数据,不管是单机游戏还是⽹络游戏都是如此。如果玩家能够知道这些存档数据保存在哪
⾥,并且还能随意修改存档信息,那是不是就能达到「开挂」的⽬的呢?
答案当然是肯定的,因为只要知晓计算机对⼆进制数据的处理机制,就能轻松做到这⼀点。
内容
修改《植物⼤战僵⼫》的存档⽂件,将⼀个新⽤户的进度直接修改到5-2关,⾦钱(能量)直接修改到10000
说明
了解⼆进制、⼗六进制对于计算机的意义
掌握⼆/七/⼋/⼗/⼗⼆/⼗六等多种数据进制间的转换
掌握如何在windows及linux中修改并保存⼆进制⽂件
前期准备
《Plants Vs Zombies v1.0》(植物大战僵尸1.0)链接:
/s/1X3QHhi2cl9npUz0NGVmy1Q
提取码:6f8a
Hex Editor Neo 下载地址:/free-hex-editor
开始修改
1.新建游戏存档Test01
2.找到存档的位置
2.1存档位置在隐藏文件夹下,首先打开查看隐藏的项目
2.2第二步找到文件目录C盘
你会看到一些dat文件,由于之前玩过这个游戏,所以新建的存档是user2
3.修改关卡
3.1用Hex Editor Neo打开user2文件,可以看到1-1:
由于我们不知道游戏关卡存档在哪个数据中,我们采用找规律的方法,
既从1-1关玩到1-3,每过一关备份一次user2文件,以此找到规律
3.2这是第二关user2文件:
3.3第三关user2文件:
这里我们可以看到规律:在00行04列1-1关是01,1-2关是02,1-3关是03。
以此类推可以得出:
关卡1-1:01
关卡1-10:0A
关卡2-1:0B
关卡2-10:14
关卡5-1:29
关卡5-2:2A
关卡5-10:32
由于我们要求修改为5-2关,所以把00行04列修改为2A
4.修改金钱
由于我们是直接修改到5-2关卡的,所以我们的商店里的金钱为0
4.1备份5-2关卡的dat文件为:
我们根据上述的方法从5-2关卡玩到5-3关卡来获得几个金币,查找存储金币的数据
通关5-2后我们获得80金币:
4.2获得5-3的dat文件为:
由此可见80金币在在00行08列存储为08
4.3修改数值
我们把00行08列的数值改为十六进制的最大数ff,然后获得金币
再将ff改为10得到160个金币,由此我们找到规律:所修改的十六进制数得到的金币是十进制数的10倍。
所以要想修改为10000金币,则修改00行08-0b的数据分别为:e8 03 00 00
在线进制转换:/front-end/58