近来闲得无聊下载了群里的某款小黄油游戏,无奈游戏bug太多加上本身操控系统并不太好始终没有通关所以起了破解这款游戏存档的念头。

首先我们需要找到游戏存档的目录,一般而言游戏会将存档存放在游戏本身安装的目录下,而使用flash引擎和unity3d引擎的游戏会将存档存放在C:\Users\<用户名>\AppData\LocalLow\<游戏公司>\<游戏名>目录下。在我打开C:\Users\<用户名>\AppData\LocalLow\<游戏公司>\<游戏名>以后找到目录下有一个名为defaultFile.txt的文件,打开后可以看到~ Hound_CG1等字样,如图/media/files/2018/08/30/defaultFile

其中我们可以看到多次出现以7B7E开头的段落,也就是ASCII码的~{,现在我们将游戏重置后与解锁一个CG的defaultFile.txt进行简单的对比。/media/files/2018/08/30/defaultFile2

我们可以看到~ Hound_CG1等字样没有了,但是文件依然是以7E开头且顺序与原来不一样。我们大胆假设游戏中的defaultFile.txt以一个名为node的结构体或者对象组成,其中以7E表示一个结构体的开始,以7B结尾。(末尾也是以7B结尾我们可以大概确定文件结构了)

再来看空存档中的前两个分割出来的块,如图所示/media/files/2018/08/30/defaultFile3

可以看到progress与continue字样,可能是游戏中的全局存档与自动存档点,并且都是以7E08开头的,与下面的7E0N的并不一样,但是也有重复的地方。再对比两幅图的progress字段,我们发现空存档在7B前是00 00 00 00 00,而在保存一个CG以后结果变为了07 00 00 00将其改为20 00 00 00以后我们启动游戏便可以跳过关卡了!然后我们进一步将20改为FF即可得到最终进度(改为FF FF FF FF连原本的存档都没了,应该是使用了int类型吧?)。至于CG,这类游戏只需要躺尸就可以得到啦!23333(因为游戏本身的CG存档需要包含与CG名称相关的字段,但是破解起来会花更多的时间,与其浪费时间破解不如在游戏里多玩玩的好)