cocos2dx TexturePacker加密资源
2016-03-30 10:14
447 查看
TexturePacker最新版本中增加了一个新功能以防止你的产品资源被反编译出来。它被称为ContentProtection,即图片加密。但目前官方只支持Cocos2d-iphone的解密.TexturePacker作者说,不久Cocos2d-x也将集成解密功能.代码已经提交Cocos2d-x
github官方库。
你的app或者游戏仍可以解密数据,但是其他人则需要耗上很长的时间才能够完成破解。理论上别人仍可能从源码提取出密钥,并写出一些解码器,这是因为解码器和密钥已经被存储在你的app中-否则不可能使用你的游戏资源。但是这需要花费知识,时间和精力来解密你的资源。所以他们很有可能找一些其他更简单的猎物来破解而不是你的资源文件。
假设你已经运行过TexturePacker 创建精灵表,所以只需要打开一个已经存在的.tps文件。
下载最新版的TexturePacker-在左侧你会看到一个新的option属性:Content Protection。按下“Lock”图标,并会弹出一个新的窗口:
在编辑框中你可以输入你想要设置的key-或者按Create new key 按钮创建新的key
使用Clear/Disable来关闭加密功能。
在 TexturePacker 中 按下Save as global key 会存储密钥key为全局变量,在.pvr查看器中用它来解密,
通过按下Use global key按钮你可以复制密钥key到其他精灵表中。
改变文件的格式为pvr.ccz是非常重要的,它是当前唯一支持解密的格式。
在TexturePacker中按下Publish完成在TexturePacker中的工作。
在命令行中输入的命令是:–content-protection <key> ,其中 key必须是32位十六进制值。
在Cocos2d-x工程准备 Content protection
下载并拷贝下面2个文件到你的cocos2d-x文件夹里并且替换掉原有的文件重新编译libcocos2d.lib: cocos2d-2.1rc0-x-2.1.*\cocos2dx\support\zip_support
ZipUtils.h
ZipUtils.cpp
现在在你的app里设置密钥key。在第一个精灵表导入前你可以在你的程序启动前调用4个方法来完成它。
为了让他们更难被破解请尝试分开调用。
如果你的密钥是aaaaaaaabbbbbbbbccccccccdddddddd,你必须将它们分成4部分每部分8位:
128位加密密钥每个值是32位。在它是作为一个另一个值传递给函数,因此在app中它很难定位。然后使用:C++
或者
C++
在每一个文件里使用解密,你都得确保添加下面一行:C++
如果你已经改了文件的格式,那么现在你需要导入的是.pvr.ccz文件代替你之前使用的。
当然你也可以添加新文件到你的工程里。对,就是这样!
总结
保护你游戏资源被盗是容易的。使用新的Content Protection功能你只需要不到五分钟的时间来设置就可以做到。
在编辑框中你可以输入你想要设置的key-或者按Create new key 按钮创建新的key
使用Clear/Disable来关闭加密功能。
在 TexturePacker 中 按下Save as global key 会存储密钥key为全局变量,在.pvr查看器中用它来解密,
通过按下Use global key按钮你可以复制密钥key到其他精灵表中。
改变文件的格式为pvr.ccz是非常重要的,它是当前唯一支持解密的格式。
在TexturePacker中按下Publish完成在TexturePacker中的工作。
在命令行中输入的命令是:–content-protection <key> ,其中 key必须是32位十六进制值。
在Cocos2d-x工程准备 Content protection
下载并拷贝下面2个文件到你的cocos2d-x文件夹里并且替换掉原有的文件重新编译libcocos2d.lib: cocos2d-2.1rc0-x-2.1.*\cocos2dx\support\zip_support
ZipUtils.h
ZipUtils.cpp
现在在你的app里设置密钥key。在第一个精灵表导入前你可以在你的程序启动前调用4个方法来完成它。
为了让他们更难被破解请尝试分开调用。
如果你的密钥是aaaaaaaabbbbbbbbccccccccdddddddd,你必须将它们分成4部分每部分8位:
128位加密密钥每个值是32位。在它是作为一个另一个值传递给函数,因此在app中它很难定位。然后使用:C++
或者
C++
在每一个文件里使用解密,你都得确保添加下面一行:C++
如果你已经改了文件的格式,那么现在你需要导入的是.pvr.ccz文件代替你之前使用的。
当然你也可以添加新文件到你的工程里。对,就是这样!
总结
保护你游戏资源被盗是容易的。使用新的Content Protection功能你只需要不到五分钟的时间来设置就可以做到。
github官方库。
你的app或者游戏仍可以解密数据,但是其他人则需要耗上很长的时间才能够完成破解。理论上别人仍可能从源码提取出密钥,并写出一些解码器,这是因为解码器和密钥已经被存储在你的app中-否则不可能使用你的游戏资源。但是这需要花费知识,时间和精力来解密你的资源。所以他们很有可能找一些其他更简单的猎物来破解而不是你的资源文件。
TexturePacker加密策略设置
假设你已经运行过TexturePacker 创建精灵表,所以只需要打开一个已经存在的.tps文件。下载最新版的TexturePacker-在左侧你会看到一个新的option属性:Content Protection。按下“Lock”图标,并会弹出一个新的窗口:
在编辑框中你可以输入你想要设置的key-或者按Create new key 按钮创建新的key
使用Clear/Disable来关闭加密功能。
在 TexturePacker 中 按下Save as global key 会存储密钥key为全局变量,在.pvr查看器中用它来解密,
通过按下Use global key按钮你可以复制密钥key到其他精灵表中。
改变文件的格式为pvr.ccz是非常重要的,它是当前唯一支持解密的格式。
在TexturePacker中按下Publish完成在TexturePacker中的工作。
在命令行中输入的命令是:–content-protection <key> ,其中 key必须是32位十六进制值。
在Cocos2d-x工程准备 Content protection
下载并拷贝下面2个文件到你的cocos2d-x文件夹里并且替换掉原有的文件重新编译libcocos2d.lib: cocos2d-2.1rc0-x-2.1.*\cocos2dx\support\zip_support
ZipUtils.h
ZipUtils.cpp
现在在你的app里设置密钥key。在第一个精灵表导入前你可以在你的程序启动前调用4个方法来完成它。
为了让他们更难被破解请尝试分开调用。
如果你的密钥是aaaaaaaabbbbbbbbccccccccdddddddd,你必须将它们分成4部分每部分8位:
1234 | aaaaaaaabbbbbbbbccccccccdddddddd |
1 | ZipUtils::ccSetPvrEncryptionKey(0xaaaaaaaa,0xbbbbbbbb,0xcccccccc,0xdddddddd); |
C++
1234 | ZipUtils::ccSetPvrEncryptionKeyPart(0 , 0xaaaaaaaa)ZipUtils::ccSetPvrEncryptionKeyPart(1 , 0xbbbbbbbb)ZipUtils::ccSetPvrEncryptionKeyPart(2 , 0xcccccccc)ZipUtils::ccSetPvrEncryptionKeyPart(3 , 0xdddddddd) |
1 | #import "ZipUtils.h" |
当然你也可以添加新文件到你的工程里。对,就是这样!
总结
保护你游戏资源被盗是容易的。使用新的Content Protection功能你只需要不到五分钟的时间来设置就可以做到。
在编辑框中你可以输入你想要设置的key-或者按Create new key 按钮创建新的key
使用Clear/Disable来关闭加密功能。
在 TexturePacker 中 按下Save as global key 会存储密钥key为全局变量,在.pvr查看器中用它来解密,
通过按下Use global key按钮你可以复制密钥key到其他精灵表中。
改变文件的格式为pvr.ccz是非常重要的,它是当前唯一支持解密的格式。
在TexturePacker中按下Publish完成在TexturePacker中的工作。
在命令行中输入的命令是:–content-protection <key> ,其中 key必须是32位十六进制值。
在Cocos2d-x工程准备 Content protection
下载并拷贝下面2个文件到你的cocos2d-x文件夹里并且替换掉原有的文件重新编译libcocos2d.lib: cocos2d-2.1rc0-x-2.1.*\cocos2dx\support\zip_support
ZipUtils.h
ZipUtils.cpp
现在在你的app里设置密钥key。在第一个精灵表导入前你可以在你的程序启动前调用4个方法来完成它。
为了让他们更难被破解请尝试分开调用。
如果你的密钥是aaaaaaaabbbbbbbbccccccccdddddddd,你必须将它们分成4部分每部分8位:
1234 | aaaaaaaabbbbbbbbccccccccdddddddd |
1 | ZipUtils::ccSetPvrEncryptionKey(0xaaaaaaaa,0xbbbbbbbb,0xcccccccc,0xdddddddd); |
C++
1234 | ZipUtils::ccSetPvrEncryptionKeyPart(0 , 0xaaaaaaaa)ZipUtils::ccSetPvrEncryptionKeyPart(1 , 0xbbbbbbbb)ZipUtils::ccSetPvrEncryptionKeyPart(2 , 0xcccccccc)ZipUtils::ccSetPvrEncryptionKeyPart(3 , 0xdddddddd) |
1 | #import "ZipUtils.h" |
当然你也可以添加新文件到你的工程里。对,就是这样!
总结
保护你游戏资源被盗是容易的。使用新的Content Protection功能你只需要不到五分钟的时间来设置就可以做到。
相关文章推荐
- cocos2dx 3.xLua脚本加密解密
- cocos2dx 外观者模式
- cocos学习心得2
- Cocos2d-x 多分辨率适配完全解析
- Cocos2d-X学习——Android移植,使用第三方库.so被删掉问题
- Cocos2d-JS坐标系
- cocos2dx显示sprite的矩形框
- cocos2dx 3.1创建工 mac
- cocos2d 中UserDefault在windows平台下的路径问题
- Win7 + vs2012 + cocos2d-x2.2 配置开发环境
- cocos2dx 管理者模式
- cocos2dx 工厂模式
- 使用Cocos2d-x的LuaBridge接入OC代码时需要注意的问题
- Cocos2dx动作篇
- cocos2d 3.10环境搭建
- COCOS学习笔记--复选框CheckBox及其控件属性
- cocos 2dx 更新函数
- cocos2dx适配方案新解——秒杀所有分辨率
- 使用 Cocos2d-x 和粒子编辑器实现场景特效
- cocos2d-js 免安装在线版 粒子编辑器 particle editor particle builder 兼容pex和plist