文档库 最新最全的文档下载
当前位置:文档库 › 手机游戏存档地址

手机游戏存档地址

手机游戏存档地址
手机游戏存档地址

在上篇中,我介绍了存档修改的一些基础知识,本篇将进入实战阶段,主要介绍如何判断存档文件、存档文件的类型、最简单的定位数据方法。

一、判断存档文件

通过iTools打开一个游戏的Documents目录时,我们往往会看到一堆文件,如何确定哪些是我们需要改的文件呢,这些存档文件每个游戏都可能不同,所以,并没有绝对的方法来确定哪些是我们需要的存档文件,判断主要依靠两个要素:经验和耐心,经验可以帮助你更快定位文件,但如果没成功,就只能靠耐心一个个的尝试,下面将通过一些游戏进行实例分析:

这是Asphalt6赛车游戏的存档,通过文件名我们可以看到有四个扩展名为.sav的文件,因为“保存”的英文就是“Save”,所以,我的第一感觉就是我需要改的是这四个中的一个或几

个,通过文件名可以看出serverConfig.sav是一个配置信息,trophy.sav是战利品存储信息,profileInit.sav的文件名中带了一个init(即初始化的意思),所以,最终我把目标定在了profile1.sav这个文件上,实事证明,就是它了。另外,还有一个叫profile1.bak的文件,通过比较发现,它的内容和profile1.sav一模一样,所以,在改了profile1.sav以后,我也同步改了profile1.bak这个文件。

这个是枪火兄弟连的存档,它的这些文件都以数字命名,无法一眼看出哪个才是我们需要的存档,这种情况下,我们只能全部复制出来通过搜索数据的方式来判断(如何搜索数据后面会讲到),幸运的是,只试了第一个就成了,也就是XXXXX_1000的这个文件,当然,有些时候可能得多试几个才能定位。

再来看看“勇者法则”的存档文件,这个游戏的存档文件很容易看出来,bag%.dat是背包信息,player%.dat存的肯定是人物信息,chapter%.dat是章节信息(应该记录过了多少关之类的数据),但是,你可能会发现,每个文件都有一个编号,像上图中就有bag0.dat和bag1.dat,这是什么呢?联系游戏本身的情况,其实很容易想到,因为这款游戏可以有三套存档,所以bag0.dat应该是第一套存档的背包数据,bag1.dat是第二套存档的背包数据,但是上图中为什么没有bag2.dat呢,这是因为我还没有玩过第三个存档,所以,还没有第三套存档的数据。同理,player0.dat是第一套存档的人物信息,player1.dat是第二套存档的人物信息。这样,我们在修改时,就知道改哪个文件对应的是第几套存档了。

以上的方法只是起到一个抛砖引玉的作用,由于游戏各不相同,一般我们通过文件名以及结合游戏的实际情况来进行判断,遇到无法判断的时候就只能一个个尝试了。

二、存档文件类型

在定位数据点之前,一般我们会先大致判断一下存档文件的类型,再选择对应的方式进行搜索和修改。定位数据点就是找到你想要修改的数据在存档中的位置,比如你想修改金钱,那金钱的数据到底在存档的哪个地方呢?只有找到正确的位置,才能进行修改,所以,定位数据点是存档修改的核心部份,也是最难的部份。

我这里归纳一些常见的存档文件类型,大部的游戏存档都属于以下的一种情况:

1、可直接通过游戏内数据找到定位点。

比如:游戏中的金钱数是1000,把1000转成十六进制后,可直接在存档文件中找到金钱的存储位置,这是最理想的情况,像“枪火兄弟连”、“永恒战士”的存档就属于这种情况,很容易修改。

2、游戏内的金币是通过计算出来的,无法直接搜索到。

有些数据无法直接找到,因为游戏内显示的数值可能是几个数据一起进行计算而得到的,比如:“狂野飙车6-火线追击”这款游戏中的“星章”,在游戏中显示为31个,转成十六进制后还是无法找到正确的数据位置,这是因为游戏在显示你的星章数时,是将你每关的获得的“星章”数加到一起进行显示的。对于这种情况,我们需要用到比较法进行排查定位。

3、特殊格式存档。

有些游戏的存档是一些特殊格式,不需要转成十六进制去查,可以直接查到,但是修改的时候需要用对应的工具才能正确修改,否则直接去记事本、UltraEdit这类工具去改会破坏文件的结构,导致游戏闪退。像“勇士法则”这款游戏的存档就是用的plist 格式,需要用plist Edit for Window这款工具去修改。这种情况下,其实修改也是很容易的,只要你有对应文档的工具,改起来比UltraEdit更加方便,因为不需要进行十六进制的转换。

4、带存档校验的游戏。

有些游戏为了防止玩家进行修改,对存档数据作了一些校验,虽然你很容量找到并修改存档,但是进入游戏时会遇到存档被修改的提示且无法继续游戏,有些游戏甚至直“三国塔防魏传”这款游戏的存档主要有两个文件:save.plist和save.bin,接退出。比如:

save.plist可以用记事本打开,并能很容易找到金币的位置,但是,如果你修改了金币数量,你会发现游戏会提示你存档被修改,不让你继续游戏。那么,游戏怎么会知道你的存档是被修改过的呢,关键就在于save.bin这个文件,这个文件的前4个字节的数据是将save.plist通过一些算法计算出来的一个值,一旦save.plist被修改,那么它再次计算的值就会和save.bin中的结果不匹配,这样,游戏就知道你的存档发生过改变。

这种情况相对比较复杂,需要一定的软件编程功底,我们需要尝试一些算法,看是否能找到如何计算这个校验数据的方法,如果找到就很简单了,但是通常这个需要时间比较长,要不断的尝试,需要很大的耐心。

5、完全加密的存档文件。

有些游戏更绝,把整个存档文件完全加密,你根本看不出任何与游戏相关的数据信息,像下面这个:

当你发现右侧的文本区有大量的中文字符出现的时候,基本上可以放弃了,这个破解的难度非常的大,除了要找算法外,还要知道加密的密钥,没有谁会为了一款游戏耗费这么多的精力,当然,也有可能不是加密,而是采用了一种采缩算法把数据压缩了,也会出现这种情况,但通常你无法用winrar这类工具去解压它。

三、可直接通过游戏内数据找到定位点的实例介绍

这是上面提到的存档文件类型中的第一种情况,也是最简单的情况,这里,我以永恒战士这款游戏修改金钱为例进行全程实例说明。

1、首先,我们要进入游戏玩几次,获得一些金钱,金钱的数量最好是个十百千位

都有数字,比如:2385、15467这样的数字是比较好的,而像100、500、1000

这类数字不是太好,为什么呢,因为在通常情况下将1000这样的数字转成十

六进制去搜索时,会搜索到多个地方,这样,我们就不太好确定哪个才是金钱

的数据位置。好,在得到一些金钱后,你需要记录下金钱的数值,看下图,我

现在的金钱数值是:165649 ,用计算器转成十六进制就是:02 87 11(如果

你不会转请看第一篇基础篇)

2、现在,退出游戏,接上电脑,我们用iTools把永恒战士的存档文件拖到电脑里,

然后再全部备份一份出来(也就是复制一份放到别的目录下,这样,万一改错

了,我们还可以还原),像下面这样(假设现在我还不知道哪个才是正确的存

档文件):

然后,用UltraEdit打开XXXXXXXX_1000(你的文件前面的数字可能不同),看到如下的界面:

这时,按下Ctrl+F调出查找对话框,并输入11 87 02 ,如下:

3、然后点击“下一个”按钮,这样就会发现搜索到了一处,如下图:

先别急着改,按一下F3,继续往后面搜索,看是否还有同样的数据,如果出现下面的提示,表示只有这一处地方被找到。

现在,咱们尝试修改一下,很简单,我们就把02改成03,看看金钱是否会出现变化,如

果变化了,那么恭喜你,你成功了,以后的事就不用我多说了,疯狂的改吧。

如下图,我把02改成了03:

然后,Ctrl+S保存一下,再利用iTools把改好的文件拖回手机里,进入游戏看看金钱是否有变化,见下图:

金钱变成了231185,成功了!如果你觉得不够多,可以重新修改一下,当然,还是要先

退出游戏。采用这种方法,不仅仅是金钱,像等级、物品数量等一切用数字表示的东西,只要能搜索到,都可以改。

●这里对一些数据进行特别说明:

1、如果是一些金钱、金币之类的数据,一般会由00 00 00 00四个字节组成,你在UltraEdit 看到这个数据时,一般就可以判断,像下面这样的:

11 87 03 后面还有00,表示你最大可以改成FF FF FF FF(对应十进制42亿多),但其实不需要这么多,一般改成FF FF FF 00(对应十进制1600多万)已经足够了,你也可以用计算器把你想要数值转成十六进制,但记得修改时要按字节反过来改,比如你转成十六进制是CC DD ,那么改的时候就应该是DD CC 。

2、对于一些等级、属性类的数据,游戏在开发时已经考虑到不可能有太大的值,所以,他们一般会只用到00 00两组,或者00一组来存放这类数据,在修改时千万试着来,不要把其它的数据改乱了。

下面是常用的十六进制对应的十进制数据表:

下一篇会介绍比较法排查数据点,用来应对一些无法直接搜索到游戏数据的情况。

相关文档