苍蓝境界相关

2017-11-21 2,358 ℃

1.0.0

最近经常在taptap首页上看到这游戏的广告,所以就下了下来,玩了一段时间后发现这游戏的素质并不怎么样,不过稍微还有点研究价值就顺手写下好了

图片

首当其冲就是图片啦,毕竟这游戏还是有些立绘是比较喜欢的。Cocos2d-x的游戏,资源全部在res文件夹下,图片虽然是png后缀不过不出意外的是加密过的,查看头发现是“CCZp”字样,看起来好像又是pvr.ccz那一套,所以直接查找函数setPvrEncryptionKey,可以看到所以key就是900150983CD24FB0D6963F7D28E17F72,丢进TexturePacker里结果发现居然打不开。一开始以为它是外面又套了层加密,所以直接上调试了,断点断在initWithImageData上,查看传入参数,发现这个时候图片还是原始状态,继续往下跟踪,最后发现在inflateCCZBuffer函数里被解密成png,看完整个函数,发现其实就是png+zlib压缩+ccz加密罢了,从github上找到Cocos2d-x的源码解密ccz,再解压zlib就完成了。用c#抄了一份程序,有爱自取,打开exe输入需要解密的目录回车就行

程序+源码

百度云

lua

用的还是Cocos2d-x自带的xxtea,直接打开文件查看sign是47bce5c7,在IDA里搜索然后查找引用,就能看到key是08f8e026,图就懒得贴了。其实很想吐槽这自带的xxtea的sign问题,因为解密并不会用到这个东西,除了让人方便找key外就没有任何用处了。另外解开lua后能看到许多神奇的注释。。。

修改

因为游戏有lua,所以先入为主的以为逻辑都在lua里,结果把lua改了个遍几乎都没效果,后来重新翻开libcocos2dlua.so才发现还是在so里,比如BaseCard::getATK啥的,不过这修改对敌我双方都有效,最后选了json读取的地方来修改,位置从字符串入手就行,在data段搜索“atk”找到0x103D484上的“atk”,查找引用,定位到0x568B3C上修改0x568B42为mov r0,#xxxx就行,其他数值同理,注意这段是在Thumb

吐槽

难得遇到的一个槽点这么多的游戏,不吐不快

  1. 图片用到的秘钥900150983CD24FB0D6963F7D28E17F72是字符串“abc”的md5
  2. 上面也说了,lua里可以看到许多神奇的注释,注释的人应该不是写程序的人,估计代码都是外包的,就贴一张有代表性的(这个函数应该是不会被调用到的)
  3. 不懂这游戏的美工是有多喜欢spine,到处都用spine,就连完全静态的图片都用了spine,然后里面塞了个只有一帧的动画。。。
  4. 还是关于spine,玩的时候我就一直觉得战斗时人物怪怪的,然后把图片拆开了终于知道是为什么了,它人物虽然是用spine做的但是并不是什么骨骼动画,而是一帧一帧画好的人物,说白了就是用spine播放个gif罢了。。。
  5. 还是spine,虽然战斗人物是用spine播放gif,不过他还是有用到骨骼动画的地方我还以为这只是个gif,没想到居然是骨骼动画∑(っ °Д °;)っ
  6. 突然忘记还有啥要吐槽的了,等想到了再编辑吧~

少女前线Live2D解密

上周在CP22看到这个游戏两周年了,打算回坑玩一阵,不过上一个号是买的初始号账号密码都忘记了,所以只好开了个新号。然后新皮肤倒是抽到了,不过枪都没有怎...

阅读全文

简单绕过BanG Dream校验

2.2.0 上周去参加CP22,炸梦演出时的人比想象中的要多,给我一种国服能很火的感觉,于是我决定下回日服顺带摸鱼一篇文章 游戏不懂什么版本开始加入了一点校验...

阅读全文

浅谈某NetHTProtect

声明,本文只稍微提一下思路,不提供任何代码~ 这次是第二次写它了,上篇文章讲的也是这玩意,不过这次它加了个新东西,直接暴力dump dll的话会发现method co...

阅读全文

17 条评论

      1. p大,请问你有空看下这款国服为谁炼金的dll文件吗,因为加密所以改不了http://fwg.mobage.cn/home

      1. 修改地址568B42
        原版09 F0 CF FB
        修改成50 03 0C E3
        放进客户端里面,重新安装。。点进入战斗就卡死不动了,难道不是这样修改吗,还是我理解错了

  1. dalao知不知道有没有什么spine资源导出成png帧的方法?实在不行我就只能自己手动解析骨骼数据然后渲染了……

      1. 我在考虑用Unity写一个工具,create SpineAnimation from Spine json/bin然后导出成png/gif,感觉应该可行。另外我发现Spine官方出了个Skeleton Viewer,不过这工具只能看不能导出……

欢迎留言

3 + 1 =