Cocos2d-x客户端代码加密
来源:互联网 发布:淘宝圣手魔方 编辑:程序博客网 时间:2024/06/05 16:56
代码加密的重要性就不用多讲了。网上讲代码加密的一大堆,但是很多都只是讲讲原理,还有好多转载的,而本博注重的是步骤详细,让新手一步步完成代码加密。
一、下载quick-cocos2d-x
quick-cocos2d-x封装了一套加密的工具,先下载quick-cocos2d-x,git地址https://github.com/dualface/v3quick。
解压之后把bin目录拷贝到我们的cocos2d-x工程根目录。
二、加密代码
cocos提供了luacompile命令,讲lua文件编译成luac字节码,但是luac可以被反编译。
quick-cocos2d-x提供了pack_files命令,可以将文件加密后打包成压缩包。
到bin目录打开命令行窗口,执行pack_files.bat -h 可以查看pack_files的使用方法。
1、编译luac字节码
::script_compile.batset SRC=E:\Cocos2d\Cocos2d-x\Projects\Game_Lua\srcset DSRC=E:\Cocos2d\Cocos2d-x\Projects\Game_Lua\dsrccocos luacompile -s %SRC% -d %DSRC%
2、对luac字节码文件进行加密后打包
::script_pack.batset DSRC=E:\Cocos2d\Cocos2d-x\Projects\Game_Lua\dsrcset ESRC=E:\Cocos2d\Cocos2d-x\Projects\Game_Lua\esrccd binpack_files.bat -i %DSRC% -o %ESRC% -m zip -ek 123456 -es test
这时候会生成esrc压缩文件。
三、修改AppDelegate文件
bool AppDelegate::applicationDidFinishLaunching(){ auto engine = LuaEngine::getInstance(); ScriptEngineManager::getInstance()->setScriptEngine(engine); lua_State* L = engine->getLuaStack()->getLuaState(); lua_module_register(L); // If you want to use Quick-Cocos2d-X, please uncomment below code // register_all_quick_manual(L);if (USE_XXTEA_ENCRYPT == 1){auto stack = engine->getLuaStack();stack->setXXTEAKeyAndSign("123456", strlen("123456"), "test", strlen("test"));stack->loadChunksFromZIP("esrc");stack->executeString("require 'main.luac'");}else{if (engine->executeScriptFile("src/main.lua")) {return false;}} return true;}
注意:这里用的是require "main.luac"。
删除原来的代码源文件,运行也成功运行。
0 0
- Cocos2d-x客户端代码加密
- Cocos2d-x客户端资源加密
- Cocos2d-x客户端资源加密
- Cocos2d-x 之 lua 代码加密
- quick-cocos2d-x 加密
- Cocos2d-x Lua/Javascript脚本代码加密实现例子【转】
- Cocos2d-x Lua引擎制作的游戏代码加密
- cocos2d-x lua 加密解密
- 【Cocos2d-x】数据加密解密
- 详解Quick-Cocos2d-x 加密
- cocos2d-x数据简单加密
- android客户端加密代码
- android客户端加密代码
- 【加密】Cocos2d-x PNG图片资源加密
- cocos2d-x 代码拾遗
- Cocos2d-x教程(32)-quick-cocos2d-x 加密
- Cocos2d-x教程(32)-quick-cocos2d-x 加密
- openssl加密通信客户端代码
- IOS开发者必看的博客
- IOS开发者必看的博客汇总
- C++转iOS开发5个月总结
- 求每个月的最后一天日期
- 问题汇总のUnable to find expected entry in Release file问题
- Cocos2d-x客户端代码加密
- myeclipse快捷键
- Is there any way to define a min and max value for edittext in android?
- ACM HDU Bone Collector 01背包
- bzoj 1103: [POI2007]大都市meg 树状数组
- linux build commands
- typedef详解
- js阻塞特性
- Arcgis for js,Openlayers中加载GeoJSON