任务01 植物大战僵尸存档修改
1、要求
修改《植物⼤战僵⼫》的存档⽂件,将⼀个新⽤户的进度直接修改到5-2关,⾦钱(能量)直接修改到10000
2、说明
- 了解⼆进制、⼗六进制对于计算机的意义
- 掌握⼆/七/⼋/⼗/⼗⼆/⼗六等多种数据进制间的转换
- 掌握如何在windows及linux中修改并保存⼆进制⽂件
3、准备
- 植物大战僵尸
游戏下载:https://pan.baidu.com/s/12i4GsUkl6oMzFBuCPWOaLA
提取码: 5xj9
- Hex Editor Neo
用来读取和修改二进制文件
破解版下载:https://www.52pojie.cn/thread-1353906-1-1.html
下载安装后中文语言包加载不出来:rage:
需要自己下载语言包,在安装目录下,创建目录Localization
,把语言包扔进去
运行darkzer0.exe
进行pojie
4、任务实践
4.1、修改关卡
分析
既然要修改《植物⼤战僵⼫》的存档⽂件,就需知道文件在哪
先去游戏目录下找找,看见userdata
目录,那么用户数据应该就在这里了
打开目录下user1.dat
文件
只有这两处有数据,假设下,如果我们通关了,那么这两数值至少有一个改变
当我们过完第一关后,重新打开文件,发现数据没改变:sweat:
那它的数据应该在哪呢?
小常识:如果数据不在当前目录下,大部分数据都在C:\ProgramData\
目录下
最后得到在目录:C:\ProgramData\PopCap Games\PlantsVsZombies\userdata
修改数据
想要跳过关卡,就要修改文件里的数据。首先,我们要明确,对应的关卡数据是多少
为了方便分析数据,把显示方式切换到十进制
对比之前的数据发现变成了2
我们来改下数据看看关卡变成什么
- 修改成3:关卡是1-3
- 修改成4:关卡是1-4
- .............
- 修改成11:关卡是2-1
- 修改成12:关卡是2-2
- 修改成25:关卡是3-5
- 修改成35:关卡是4-5
很明显的发现规律,得出4-1关卡的数据就是31
到此修改关卡就完成了
4.2、修改金钱
分析
到了4-1关卡,解锁了商店,按照之前的思路,我们通过金币的变换对应文件内容的变化,来分析金币变化规律
- 记录现有金币0
- 闯关获得金币
既然我们可以通过修改文件数据,来改变游戏关卡。
那我们是不是也可以修改内存数据改变游戏数据,例如:阳光
借助工具:Cheat Engine 7.0
- 下载地址:https://www.lanzous.com/i5q0wsb
- 密码:52PJ
1、添加植物大战僵尸进程
2、扫描
填50,因为我们一开始阳光是50
结果有600个,太多了,进入游戏改变阳关值,进行第二次搜索
只剩下一个地址了,那么这个肯定就是阳光的内存地址。(有时候不会这么快出现唯一,我们可以多次更改数值,多次筛选)
3、修改
双击“数值”,修改数据后,成功!
- 过关后查看数据变化
金币数量为320,对应数据为32
- 修改数据查看规则
盲猜一下,修改成40,金币则为400
最后真成400了!
修改数据
发现规律后,那么⾦钱修改到10000,把数值改成1000就行了
总结
任务完成心得:
- 善于使用工具
通过工具,我们可以在不了解二进制等进制,来进行修改文件数据。但我们需要了解它们的进制转变
- 善于动手
很多规律,是通过不断的修改数值才发现的,我们要善于动手并发现其中的规律
任务知识:
- 大部分文件储存目录
当前运行目录,或者C:\ProgramData\
- 二进制、十进制、十六进制的了解和转换
拓展:
在上面我们用了Cheat Engine工具,修改了内存中阳光数值
那么我们就可以借助工具分析出阳光在内存的地址
依据这些地址我们就可以写出任意修改阳光的辅助,这是一些游戏辅助的原理
也可以通过OD修改植物大战僵尸这款游戏,这也是一些游戏“无敌版”的由来
附言:
以上内容本人在虚拟机完成,大家可下载vmware,安装win10镜像,在里面完成
小时候玩洛克王国游戏,为了快速升级,下载了一堆辅助,有的软件恶意捆绑或修改电脑密码,最后把电脑弄“炸”了,没少挨父母打,后来长记性了。
你的文章内容非常用心,让人感动。http://www.jdniuchuang.com
哈哈哈,写的太好了https://www.cscnn.com/