苍蓝境界相关

2017-11-21 3,453 ℃

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. 突然忘记还有啥要吐槽的了,等想到了再编辑吧~

使用Riru修改手游

前篇 手游的注入与修改 使用VirtualXposed修改手游 开始前的废话 时隔半年终于把这坑填上了,一开始只是打算随便写写,不过现在看来刚好可以凑出一个系列,之...

阅读全文

使用VirtualXposed修改手游

前篇 手游的注入与修改 前言 这篇后续文章原本是打算很快就写完的,但是不知怎么一转眼就已经12月了,眼看今年都要过了,还是赶紧把这篇文章水出来吧。 在上...

阅读全文

【2019-6-14】碧蓝航线Live2D提取

2019-6-14 v1.3 大量改进 2018-10-27 v1.2 完善4种Segment 2018-10-23 v1.1 修复易拉罐等SteppedSegment问题 正文 自从看到舰B的live2d后就决定要提取一发来...

阅读全文

24 条评论

  1. 我最近想从一个同样是cocos2dlua做的一个手游里解密资源图片,lua是xxtea加密的已经解出来了,唯独摸不清楚png是用什么方式加密的。每张png都是单个的图片,查看了文件头可以排除xxtea和ccz,请问下一步该如何着手,只能尝试动态调试了吗

  2. 楼主问下,通过查看lua和png开头,知道全部用了xxtea加密,lua已经反编译出来,
    那么,xxtea加密的png图片该如何解密呢

  3. 大佬,游戏的新包变了,解开看到的是bat扩展名,应该是用了新的压缩方式,这该从哪找突破点。不过查看头还是有“CCZp”字样,那么ccz加密大概没变,能否看看?

    1. 额,我应该是不会把这个游戏下回来玩,你自己看看吧,算法也就那套,我链接贴在上面了

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

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

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

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

欢迎留言

6 + 9 =