一个好玩的尝试


前言

《植物大战僵尸》曾经是一款风靡全球的单机游戏。为了获得更多道具来打败僵尸,我也曾经下载过破解版的植物大战僵尸 。今天我们就来探讨一下如何通过修改该游戏的配置文件,实现对《植物大战僵尸》的暴力破解! hhh想想都有点小激动 ~~~




一、下载工具

我们需要一个十六进制文件的编辑器和一个《植物大战僵尸》的安装包。
下载地址植物大战僵尸 + 编辑器
提取码:djc6



1.下载安装

网盘里的文件如下:
png1
两个exe文件分别对应游戏和编辑器的安装程序,点击即可安装。

建议都安装在D盘(非C盘系统盘),安装完后:
在这里插入图片描述


2.打开我们的游戏

打开游戏文件夹
在这里插入图片描述

我们点击应用程序打开,建立一个新玩家


在这里插入图片描述

很不幸,我们发现所有关卡都是上锁的,金钱数为0。请不要着急,我们一步步来暴力破解它。




二、破解

1.无限金钱当土豪

打僵尸没钱买道具可不行,所以我们先给自己的账户添个几十万金币再说。
在大多数单机游戏里,数据和配置文件都是以2进制或者16进制的形式存在的。

我们想要无限金钱首先就是找到相应的配置文件修改。


话不多说,咱直接上图:
在这里插入图片描述

我们首先找到C盘的C:\ProgramData文件夹,这是默认存储绝大多数程序数据的地方。平时默认隐藏,我们可以按我图的步骤去操作。

接下来找到我们的目标文件夹:
在这里插入图片描述

红线标出的是目标文件夹的默认路径。

点开文件夹,找到userdate文件夹:
在这里插入图片描述

再进入此文件夹后,我们终于找到了目标文件:
在这里插入图片描述
因为我建立了两个玩家,所以我这有user1.datuser2.dat两个数据文件。如果第一次尝试,应该选择user1.dat

我们打开刚刚装好的16进制文件编辑器:
在这里插入图片描述


然后我们把user1.dat文件直接拖入编辑器:
在这里插入图片描述


然后修改此文件:
在这里插入图片描述

注意:我们要修改的是第一行的08和09列。金钱数在这边是以4位16进制数的方式存在的,09列对应的高位,08列对应的是低位。
10进制转16进制在线工具


我演示就不麻烦了,直接转最大的:

在这里插入图片描述

但是戴夫商店必须玩到指定关卡之后才能解锁。我们下面修改存档到第23关。


修改关卡,第一行04列:

在这里插入图片描述
23对应的16进制数是17,我们改好以后保存退出

重新打开游戏并查看:

在这里插入图片描述
我们发现第23关对应的是LEVEL4-5,这边已经成功解锁此关卡和商店。


打开商店:

在这里插入图片描述
我们发现我们已经有了655350枚金币,就这小破商店可以买空它无数次。

一股土豪气息扑面而来!



2.我的关卡我做主

程序员会老实打游戏,通关升级吗?
不存在的!


我现在想玩花园,所以我要解锁那一关:

具体哪一关解锁花园来着?我给忘了。没事,咱输入一个比较大的数32,对应的十进制数就是50,也就是第50关。

在这里插入图片描述


重新打开游戏查看一下:

在这里插入图片描述
哈哈!我已经解锁了我想玩的禅境花苑


在这里插入图片描述
商店已更新,土豪如我当然得买买买啦!

如果没有出现你想要的商品,那么你可以继续修改关卡,往后找到你要的那一关。




3.任意模式来解锁

酷炫如我怎么能在冒险模式里蹉跎人生呢?


我要解锁所有模式:

在这里插入图片描述
只要把0c列的第一行改成01,保存退出,我们就成功解锁了所有模式。


重启游戏查看效果:

在这里插入图片描述



三、总结


数据编码技术背后的计算机二进制知识和十六进制知识是软件工程师必备的基础技能。大厂开发中的数据采集,分支,压缩,编码,传输,解码,合并等工作,都和它相关。


这个好玩的修改过程可以初步体验数据编码技术。能够简单读懂和计算十六进制/二进制文件,这在嵌入式和单片机的开发中也有帮助。


《植物大战僵尸》作为一款极其出色的单机游戏,当然不止这几处可以修改。感兴趣的同学可以谷歌或者百度查看更多有意思的玩法。

Day day up!

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐