钻石的数量保存在用户进度存档(Documents/user.dat)的偏移 0x0005 - 0x0008 处,小端格式。最重要的是找到正确的偏移量,比较大法就可以啦!
ssh 到 iPad/iPhone,冰雪奇缘的GUID是43E55403-06B2-4AC4-824F-B8B10B1AF6B7(用itools在应用文档里建一个名字特殊的文件,然后find命令即可)
cd 到 /var/mobile/Applications/43E55403-06B2-4AC4-824F-B8B10B1AF6B7/Documents/
下面是我自己的操作,和回答问题无关的命令模糊掉了。第一个命令是ls,确认我们在正确的目录下。
在运行第二个命令“cp user.dat user.dat.1”之前,我们需要打开游戏,耗尽所有的心,然后游戏会提示你用钻石购买心,也就是说,在出现下面的画面时,运行第二个命令:
然后点加号补充红心,此时运行第三条命令“cp user.dat user.dat.2”。
由此可见,user.dat.1包含了补充红心之前钻石的数量,user.dat.2包含了补充红心之后钻石的数量。我们把这两个文件进行二进制比对,即第四条命令 cmp -l user.dat.1 user.dat.2
cmp是一条标准UNIX命令(iOS和UNIX有渊源嘛~),它的输出是8进制的,第一列是偏移地址,第二列是第一个文件的对应值,第三列是第二个文件的对应值。
我们看到,偏移量为5的那个数,由24(也就是10进制的20!)变到了0……抓到它了哦~
至于为什么是0x0005 - 0x0008,猜测程序会用一个4byte整型保存钻石的值,试着改一改验证一下想法就可以了。
参考资料:http://www.zhihu.com/question/22757436/answer/22518727
: 钻石的数量保存在用户进度存档(Documents/user.dat)的偏移 0x0005 - 0x0008 处,小端格式。
得到爱心不用这么麻烦的,在手机上修改一下时间,然后再该回来就可以了。我已经用这个方法通关了这个游戏了。具体操作方法你可以看我的百度经验:http://jingyan.baidu.com/article/851fbc37e1a74c3e1f15ab9e.html
不知道。。。。。。。。。。。。。。。