C1 任务1 修改游戏存档

1.找到游戏存档的位置

一开始没想到,游戏的数据放到哪里,所以刚开始一直在改这个userdata文件夹里的内容,结果存档一直没有效果,后来改劈叉后,删掉重新解压一次

ios修改存档 苹果游戏修改存档_c证

发现数据和存档还在,然后根据我以前写程序的时候,总是把数据放到 C:\ProgramData 文件夹下(许多程序的设置也都是保存到这个文件夹的),这个文件夹已经被隐藏了,由于我电脑默认设置的就是显示隐藏项目。

ios修改存档 苹果游戏修改存档_十六进制_02

用图上的方法来设置,接着找到C:\ProgramData\PopCap Games\PlantsVsZombies\userdata文件夹

然后游戏数据就出来了

ios修改存档 苹果游戏修改存档_c证_03

users.dat是保存的用户信息,userx.dat才是用户下的缓存

2.修改存档

然后新建两个用户,用来对比数据,用第一个数据先闯到(1,5)关

ios修改存档 苹果游戏修改存档_ios修改存档_04

然后在看没玩的,可以看到改变的数值是 04列下的第一行

ios修改存档 苹果游戏修改存档_c证_05

我们的要求是改到5,2关,植物大战僵尸的一个大关卡中的小关卡一共有10关,我们到5,2关也就是到52关

计算5,2关也就是52的十六进制得出 34,我们把01改到34后,发现关卡是6,2关了,然后懵逼了,具体我也不知道啊,不应该是这样吗???

接着我算出了42的十六进制 2a 然后改到了5,2关

用5.1凑个数

ios修改存档 苹果游戏修改存档_ios修改存档_06

3.修改金币数量

当值为2a的时候,商城已经出现了,但是银币为0,我又打了一关获取到10银币后找到了修改后的数据位置,也就是08列到0b列,然后发现,10银币表示的是1,那么我们获取到10000银币的话,只需要把1000的十六进制打上去就行

我们算出的1000十六进制是3e8,接着在前面补个0 变成03e8,接下来开始改存档

ios修改存档 苹果游戏修改存档_十六进制_07

保存之后进游戏一看,又懵了,593950个银币。。。

然后又算出来这个数值的十六进制得出 e803,发现和我们的03e8有点相反呐。。。

然后又把08列到09列修改为了 e803(因为我们写的是03e8但是的出来的值是e803的值,就可以想到,它是反着来的)

ios修改存档 苹果游戏修改存档_数据_08

然后在进游戏查看,银币已经到10000个了

ios修改存档 苹果游戏修改存档_ios修改存档_09

拓展任务

拓展任务: 用十六进制绘制一个带黑线的图

这个任务完成的话,需要了解BMP的结构

这段话来源于百度百科

位图文件可看成由4个部分组成:位图文件头(bitmap-file header)、位图信息头(bitmap-information header)、彩色表(color table)和定义位图的字节(位图数据,即图像数据,Data Bits 或Data Body)阵列,它具有如下所示的形式。

结构

大小

描述

bfType

2

说明文件的类型.该值必需是0x4D42

bfSize

4

说明文件的大小,用字节为单位

bfReserved1

2

保留,必须设置为0

bfReserved2

2

保留,必须设置为0

bfOffBits

4

文件头开始到实际的图象数据之间的字节的偏移量

接下来用hex editor Neo 新建一个十六进制临时文件,先把头文件怼好

然后我们来进行画图了

ios修改存档 苹果游戏修改存档_修改存档_10

我们先弄一堆白色(白色的16进制为FF)

所以我们给他补一堆F

如果FF没有加够的话,那么图片应该是损坏的,当白色底图出来后就可以停止了

ios修改存档 苹果游戏修改存档_c证_11

保存后就是这个样子

ios修改存档 苹果游戏修改存档_数据_12

然后开始画黑线了,在学html的时候我们知道,黑色的十六进制rgb是 #000000

所以我们只需要把一部分f换成0就可以画出来黑线了,但是要注意的是,bmp的十六进制是从底往头走的,也就是上面的f是底部的白色背景,然后最下边的f是最顶部的白色背景,我们尽量靠中间走

ios修改存档 苹果游戏修改存档_十六进制_13

把中间的f换成0后,我们在看效果图片

ios修改存档 苹果游戏修改存档_ios修改存档_14

这个扩展任务就完事了