cocos对lua代码加密

1.0 cocos luacompile 用法

cocos对lua代码加密

我用的普通的cocos2d lua,没用quick,quick好像可以对整个资源包括图像和音频都加密,打包成zip。但我没用quick.看了下luacompile 的 help,比较简单啊。

先在项目根目录下建立了一个out的文件夹,然后就用这个命令试了下:

cocos luacompile -s src/ -d out/

比预想的顺利,在out目录下看到了很多luac文件。正如命令里说的,支持子目录。网上说luac还是会被反编译。就加上了key。

cocos luacompile -s src/ -d out/ -e -k testKey123456 -b testSign123456

他用的是XXTEA加密算法,可以看这篇文章 《XXTEA 可逆加密解密算法 C++ C#兼容版本》

还需要在AppDelegate.cpp文件的 applicationDidFinishLaunching方法中加入setXXTEAKeyAndSign。这点它那个luacompile 的help就没提了,这是第一个坑。

LuaStack* stack = engine->getLuaStack(); stack->setXXTEAKeyAndSign("testKey123456", strlen("testKey123456"), "testSign123456", strlen("testSign123456")); if (engine->executeScriptFile("src/main.lua")) { return false; 2.不支持64bit

第二个坑马上来了:刚开始在IPhone4S模拟器运行好好的,IPhone5s就漆黑一片了。原来这样把lua编译后,虽然速度变快了,但还未支持64位系统,据说cocos2d 年底会给出luajit 64位解决方案,因为苹果要求的啊。

然后因为这个问题我卡了一会儿。网上搜了了也没什么结果,都推荐使用Quick。游戏都写完了,转Quick有点麻烦。

突然注意到luacompile help中最后一个选项:–disable-compile ,然后把命令改成下面这种:

cocos luacompile -s src/ -d out/ -e -k testKey123456 -b testSign123456 --disable-compile
3.操作 cocos luacompile -s src/ -d out/ -e -k testKey123456 -b testSign123456 --disable-compile --加密

还需要在AppDelegate.cpp文件的 applicationDidFinishLaunching方法中加入setXXTEAKeyAndSign。--引用加密文件

LuaStack* stack = engine->getLuaStack(); stack->setXXTEAKeyAndSign("testKey123456", strlen("testKey123456"), "testSign123456", strlen("testSign123456")); if (engine->executeScriptFile("src/main.lua")) { return false;  

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zywjfs.html