cocos lua 加密与解密 混淆 (版本cocos3.4)

cocos lua 加密与解密 混淆 (版本cocos3.4),第1张

概述  cocos lua 加密解密 混淆 (版本cocos3.4) cocos luacompile cocos luacompile Overview Usage Available Arguments Samples Overview Compile the .lua files to .luac. Usage cocos luacompile [arguments] Available Ar cocos lua 加密与解密 混淆 (版本cocos3.4) cocos luacompile cocos luacompile Overview Usage Available Arguments Samples @H_502_25@ OvervIEw

Compile the.luafiles to.luac.

@H_502_25@ Usage

cocos luacompile [arguments] Available Arguments

arg available value sample description necessary
-h,--help - - Show the help message and exit no
-s,--src source directory ./projects/MyLuaGame/src Specify source directory of lua files needed to be compiled. yes
-d,--dst destination directory ./projects/MyLuaGame/src Specify destination directory bytecode files to be stored. yes
-e,--encrypt - - Enable the encrypting of lua files. no
-k,--encryptkey any string MyLuaKey Specify the encrypt key for the encrypting of lua scripts. It's only take effect when-e,--encryptis enabled. Default value is2dxLua. no
-b,--encryptsign any string MyLuaSign Specify the encrypt sign for the encrypting of lua scripts. It's only take effect when--encryptis enabled. Default value isXXTEA. no
@H_502_25@ Samples cocos luacompile -h. Show the help message. cocos luacompile -s ./projects/MyLuaGame/src -d ./projects/MyLuaGame/src -e -k MyLuaKey -b MyLuaSign
Compile the*.luain directory./projects/MyLuaGame/srcto*.luac. Then encrypt the luac files with key isMyLuaKeyand sign isMyLuaSign.


我们在实验的过程中出现了一些问题,支持64位的解决方案:

cocos luacompile -s src/ -d <span >out</span>/ -e -k testKey123456 -b testSign123456 --disable-compile

下面给出全过程与测试工程


1.0 cocos luacompile 用法

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

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

cocos luacompile -s src/  -d <span >out</span>/

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

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

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

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

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

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

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

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

cocos luacompile -s src/ -d <span >out</span>/ -e -k testKey123456 -b testSign123456 --disable-compile


也是出来luac文件,但只是简单用XXTEA加密。这样小游戏完全够用了。



查阅效果图:






项目测试: /// decode: const char * key = "testKey123456"; int keylen = (int)strlen(key); const char * sign = "testSign123456"; int signlen = (int)strlen(sign); Data srcInfo = fileUtils::getInstance()->getDataFromfile("BUGAnt.luac"); //decode: xxtea_long len = 0; unsigned char * result = xxtea_decrypt(srcInfo.getBytes() + signlen,(xxtea_long)srcInfo.getSize() - signlen,(unsigned char* )key,(xxtea_long)keylen,&len); printf("\n result: %s \n len; %ld",result,len); 读取正常; 总结

以上是内存溢出为你收集整理的cocos lua 加密与解密 混淆 (版本cocos3.4)全部内容,希望文章能够帮你解决cocos lua 加密与解密 混淆 (版本cocos3.4)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1053473.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存