cocos2dx 3.xLua脚本加密解密
使用LUA脚本开发游戏有着诸多的优势,动态更新,不需要考虑内存和数据类型等等。但是LUA脚本的安全性问题却似的许多开发者非常苦恼。 我这两天因为LUA脚本加密的问题苦恼了好久,经过了两天的努力,竟然在Cocos2d的官方找到了一套完整的解决方案,在此介绍给大家希望有所帮助。 正文开始: 首先,我们要先对LUA脚本进行编译、加密和签名。有幸的是,我们不需要自己去进行:
-s 是lua脚本所在路径 -d 是编译好的lua脚本存放路径(编译后的lua脚本会变成.luac不用担心原来的lua脚本文件被覆盖) -e 表示对脚本进行加密 -k 是脚本加密的KEY -b 是脚本加密的签名(Cocos2d通过检查是否有签名来判断脚本是否需要解密运行) copy
copy
在对脚本编译和加密的工作完成后,我们还需要在 AppDelegate中,设置下脚本解密的KEY和Sign。 打开AppDelegate.cpp文件,大约56行位置:
copy
stack->setXXTEAKeyAndSign("Archer",strlen("Archer"),"XXTEAScript",strlen("XXTEAScript")); 两个Archer的位置是KEY(即编译时的-k),两个XXTEAScript的地方是SIGN(即编译时的-b) 好了就是这样,感谢大家的关注。 最后一步不要忘,移除没有加密的*.lua文件~只包含编译之后的luac就够了~ PS:菜鸟第一次推荐到主页,大神们看看就好,轻喷……不要狠心打击一个菜鸟的积极性…… 由于iphone6 和 5s的 64位架构上是不支持luajit编译的,所以只能使用lua脚本运行,不能用luajit编译后的字节码。 所以需要在 上边命令后加一行 --disable-compile 以禁止cocos工具将lua进行编译,这样就只通过xxtea加密代码,但是不编译啦~妥妥的! 示例: copy
可以下载最新版本的cocos 然后拷贝一个过去,路径是: /cocos2d-x-3.3/tools/cocos2d-console/plugins/project_compile/project_compile.py (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |