Quick-lua3.3final的脚本加密分享

趁热打铁再来一发脚本加密,如果只是实现加密,这个更简单无脑化了,quick团队已经把能做的都给我们做好了。感谢quick团队。:2: :2: :2:

版本 3.3final
工具 xcode

在引擎目录下/quick/bin/下面 compile_scripts.sh 这个东西就是我们需要的。他接受好几种加密方式,我一般只用到xxtea_zip 和 xxtea_chunk 这两种。前一种是把lua脚本压缩成一个zip,为这个zip加密。后一种是为每个脚本加密,然后再压缩一次。都差不多。
终端进入 /quick/bin/这个目录 执行./compile_scripts.sh -i 你的脚本的目录(比如我的/Users/bkbl/Documents/game/src) -o 加密后文件的输出目录(比如我的/Users/bkbl/Documents/game/res/game.zip) -e (加密方式 xxtea_chunk 或者 xxtea_zip ) -es 签名(比如 XXTEA) -ek 密钥(也就是KEY 比如 adadada)
只要代码没错误.这儿也不会报错。我的输出路径是我项目res下。如果不是 拷贝进去。)
最后在AppDelegate.ccp 添加
stack->setXXTEAKeyAndSign(“你的key”, strlen(“你的key”), “你的签名”, strlen(“你的签名”));
比如
stack->setXXTEAKeyAndSign(“adadada”, strlen(“adadada”), “XXTEA”, strlen(“XXTEA”));
读取这个zip

stack->loadChunksFromZIP(“res/game.zip”);

修改下面
engine->executeScriptFile(ConfigParser::getInstance()->getEntryFile().c_str());
的函数为
stack->executeString(“require ‘main’”);

搞定!!!非常傻瓜式的。再次感谢quick团队!

如果你同时做了脚本和资源加密 一定要用一套key和签名的。切记!!!

如果有什么疑问 可以加我QQ82847014或者quick讨论群@我。群里ID 就是论坛ID。论坛回复可能不及时。。

顶一个,赞

顶~!!!!!!!!!!!!!!!!!!!!!!!:2:

mark:7::7:

能告诉我quick 3.3 为什么cc.FileUtils:getInstance():getDataFromFile这个又不行了呢?

我用的local filedata = cc.FileUtils:getInstance():getStringFromFile(“res/updlistback”) 可以使用呀

AppDelegate.ccp 是哪个目录下的?

项目 frameworks\runtime-src\Classes

两种加密方式 有很大差别啊,两种加密打包出来的zip 差别好大 xxtea_chunk方式打包出来zip包有1M多 xxtea_zip只有300kb

用 QuickXDev插件不是更方便

蛋疼。。。不知道为啥根本加载不了脚本文件。

成功加密。很赞。

这样改了之后,这个game.zip怎么做热更新?

那你就不要打包成zip,直接散文件加密就好了

肯定是整个代码部分更新啊

不错,顶一个

cocos2d-x 2.2.6 cocos2d-x 3.4 都支持64bit 为啥lua 加密之后 Cocos2d: load “hello2.luac”, error: syntax error during pre-compilation.
帮忙看下下面方法对吗?:
python cocos2d.py luacompile -s /Users/xxx/cocos2d-x/cocos2d-x-2.2.6/samples/Lua/TestLua/Resources/luaScript -d /Users/xxx/cocos2d-x/cocos2d-x-2.2.6/samples/Lua/TestLua/Resources/luaScript -e True

stack->setXXTEAKeyAndSign("key", strlen("key"), "qianming", strlen("qianming"));
//register custom function
//LuaStack* stack = engine->getLuaStack();
//register_custom_function(stack->getLuaState());

#if (COCOS2D_DEBUG > 0 && CC_CODE_IDE_DEBUG_SUPPORT > 0)
// NOTE:Please don’t remove this call if you want to debug with Cocos Code IDE
if (_launchMode)
{
startRuntime();
}
else
{
engine->executeScriptFile(ConfigParser::getInstance()->getEntryFile().c_str());
// stack->executeString(“require ‘main’”);
}
#else
engine->executeScriptFile(ConfigParser::getInstance()->getEntryFile().c_str());
// stack->executeString(“require ‘main’”);
#endif

我是用的-m files 加密,没用zip,请问我这种情况,Appdelegate.cpp里怎么改,engine->executeScriptFile(ConfigParser::getInstance()->getEntryFile().c_str());有两处,下面是我注释掉的,都要改吗?现在我一用加密,安卓真机就黑屏

在加密的过程中还是会先把lua编译成luac的吧?

mark mark mark mark