神魔之塔修改器iOS版Plist文件这对于新手玩家来说,简直就是天书。当然,资格玩家可就把文章做个分析,能够获得很多福利。
今天被在DeNA(梦宝谷的运营公司)的同学说笑了一顿,说作为码农居然还要给这种卡片游戏扔钱(自己扔了前前后后有300大洋),直接修改不就得了。作为一个菜鸟码农,还是要维护一下码农的尊严的,于是就研究了一下,虽然没什么实质性的结论,但是还是想把结果抛出来,供其他高手继续研究用,虽然高手应该不屑于研究这类游戏....
大家应该都知道神魔之塔在游戏的一开始,就已经决定了要掉什么卡,并且写在了文件中。因为自己只用pad,所以只知道iOS下的文件是/library/Prefences/com.madhead.tos.zh.plist这个文件。实际上这个文件里面还有很多的玄机:游戏中只有这个文件记录了战斗的内容等等,并且只有这个文件记录了战斗的内容。
例如,如果你12:00进入了游戏,并玩到了12:03,但是未通关。这时如果用iFile之类的文件查看器看一看App的目录的话,你就会发现只有一个文件在12:03被修改了,那就是com.madhead.tos.zh.plist这个文件。
这说明什么呢?一个游戏想要查是否玩家作弊,一定要有数据。而神魔之塔在进入游戏后就可以单机,即使是设备重启也可以恢复到重启前的那一刻的状态。这说明战斗记录等等数据一定不是在内存中,而是在文件中,而上文我们知道了游戏在进入游戏后只写入了com.madhead.tos.zh.plist这个文件,那么游戏的记录也一定在这个文件中。换句话说,服务器判断你是否作弊,也一定要用这个文件,也只能用这个文件。我们只要知道这个文件记录了哪些内容,记录了多少,就可以知道,我们如果用修改器怎么改可以不被封,怎么外挂可以不被封。
例如我在游戏中随便找一个关去打,我用的是光2-2,对比某一次转珠前和转珠后Plist文件的变化(我用的是UCcompare):
可以看到,发生变化的只有
其中MH_CACHE_GAMEPLAY_DATA_DECREASE_CD中分别有一段Hash值和上一次MH_CACHE_GAMEPLAY_DATA_ALL字段的最后串号,最后是进行的回合数:我确实是对比了第五次转珠和第六次转珠的Plist文件,可以看到该字段结尾也是“_5”和“_6”。
而在MH_CACHE_GAMEPLAY_DATA_ALL中则存有最重要的战斗细节数据,我能够理解的有如下:
a)开头应该是一个32位的Hash,具体算法未知,后面不远处有一长串数字:“6_1_2_1_5_1_3_1_2_1_2_1_4_1_6_1_5_1_4_1_2_1_5_1_2_1_1_1_1_1_6_1_6_1_3_1_6_1_6_1_2_1_2_1_3_1_2_1_2_1_5_1_1_1_6_1_3_1_6_1_”该字段描述了当前你的珠子分布,以”_1_”作为分隔符,其中,1 = 水 2 = 火 3= 木 4=光 5 = 暗 6 = 心。顺序是从左到右,从上到下。
b)我的生命值是7858,该回合我故意被打了两下,每下185,最后生命变成了7488。可以看到,这几项在游戏中都有记录:当前生命值7488,前一回合生命值7858,被攻击次数2,每一次的攻击力185,185。
还有更多的对比截图,包括回复等等,这里就不多说了,以目前已知的信息来看,可以得出如下结论:
1.直接修改Plist是不可行的,虽然里面记录了玩家的所有信息,但是一来服务器有备份,二来数据段里面都有Hash来防篡改。我试过在战斗中间改数据,然后退出重进,结果是直接该场战斗作废,体力值扣除。
2. 用转珠类的App应该是可行的,只要稍微把时间控制一下,进出战斗时间别太短,以目前来看程序应该识别不了。
3. 八门神器之类的改到底肯定不可行,程序会记录玩家的战斗历史,如果出现前一次和后一次体力值相差很多,或者回复值相差很多,被封是肯定的,甚至都不用人工去查。但是从程序记录的样子来看,程序应该不会记录太多战斗历史。所以我猜测,如果在战斗结束前的3-4个回合,把数据改成正常,走一走过场,程序也应该不会发现。但是也只是猜测,需要更多的测试。
S/L也是可查的,如果没猜错,S/L是要连网络的,每一次连网都会有一个登入计数,如果在一关内登入太多,那基本就可以定性为S/L了,至于封不封,怎么封,就看官方心情了.
写这个帖子的目的在于抛砖引玉,希望大家都来探讨一下,也希望有高手出来指点一二。
一号玩家:
分析的很透彻。
二号玩家:
前线测试员给你贡献点数据。其一,开挂修改查封有一个数值区间,具体不是非常明朗,但是有大致范围。一旦跨入雷区,则封号。雷区再修改机器无法辨别。其二,一次开挂,全程记录,不存在最后改回来就没事的说法,已经实验。其三,sl不需要联网,sl之所以被封,个人推测是某个文件的读取和写入次数达到一定数值,系统就判定你是作弊。楼主加油,修改魔石指日可待
三号玩家:
sl还是需要联网的吧,起码你回复数据后,重新登录游戏还是要联网。难道能断网后s,发现失误在断网的情况下l重新登入游戏?
四号玩家:
嗯,是的,试过了,全程断网可行
五号玩家:
请教下,我用钛备份恢复游戏后,想继续玩只能联网重新登录游戏,怎么才能全程断网sl呢?
六号玩家:
这些东西自己研究可能很有趣,但是放出来就不太好了,等官方看到加个密大家都没得搞,这种东西就不要拿出来炫耀了