cocos2dx资源进行打包的工具和代码实现zpack
最近看了下 zpack 0.83 代码实现了资源打包 资源文件名加密 数据提取整合到 cocos2dx中代码稍后会提交的 demo中还加入了 数据库的加密 和解密。。
代码是在 zpack的基础上二次开发的
ipa很容易被解压取得资源这个话题不用多讨论了,昨天起花了一天时间,终于实现了资源(png,xml,ccbi......)的打包和解包操作,并且很简单就能应用到cocos2d-x上面。
代码是在 zpack的基础上二次开发的
ipa很容易被解压取得资源这个话题不用多讨论了,昨天起花了一天时间,终于实现了资源(png,xml,ccbi......)的打包和解包操作,并且很简单就能应用到cocos2d-x上面。
简单说一下原理:
1。把项目中资源目录下面所有文件按照一定顺序写进一个二进制包,当然资源可以简单用arc4等进行加密,一些文本文件,配置文件(plist,xml,txt等)可以进行压缩,非常灵活。(下图中:data.td3guoConfig就是资源包)
2。生成一个配置文件,记录某个资源在二进制包中的具体位置,长度,版本号,加密状态等(下图中dataConfig.td3guoConfig就是配置文件)
工具制作:
本人是个工具控,用air写工具都写到成一个瘾君子了,发张截图纪念一下:
上图初略说明一下:
Resource/assets就是我个人定义的资源目录,我不喜欢把资源直接丢到Resource下面。
finder中实体如下:
如何结合到cocos2d-x:
应用到cocos2dx非常简单,看代码说话吧:
下图:对CCFileUtils::getFileData进行几行的代码添加便行了(ps:平时不要随便修改框架源代码)
下图:还有CCFileUtilsIOS::createCCDictionaryWithContentsOfFile(ps:下图的代码不能跨平台,注意)
注意,如果是有用到lua的,还需要修改CCFileUtilsIOS::createCCArrayWithContentsOfFile
暂时测试木有任何问题(包括cocosbuilder制作的ui ccbi文件的读取),所涉及到的创建对象时,还是像平时Cocos2dx那样应用,例如:
CCSprite *sp = CCSprite::create("helloworld.png");//包里面有helloworld这张图片就行了,没有就通过原生方法读取。
现在终于不怕别人解开你的ipa来窃取资源和配置了,保守估计98%的破解者已经对你的程序措手无策了,特别是不懂代码的工具派菜鸟破解者,其中的2%,咱们稍微写个加密就解决了,不过解密加密和性能也有关系,看取舍吧
转载地址:http://blog.csdn.net/henren555/article/details/19965059