概述

lua代码加密成luac,主要使用cocos2d-x中的luacompile,是使用XXTEA加密算法实现的。

luacompile

首先来了解一下luacompile相关用法,使用命令 cocos luacompile -h即可查看(我使用的是3.16版本的cocos2d-x,放在D盘的cocos目录下)。如下图

流程

1.创建一个Cocos2d-lua项目,取名为demo。

2.在demo项目的根目录下,创建一个文件夹src_luac(随便什么名字都可以),用来存放加密好的luac文件。

3.在demo项目的AppDelegate.cpp文件的applicationDidFinishLaunching()方法中,有以下两行代码,其作用是设置加密使用的key和sign。

LuaStack* stack = engine->getLuaStack();
stack->setXXTEAKeyAndSign("demoKey", strlen("demoKey"), "demoSign", strlen("demoSign"));

4.运行命令D:\cocos\cocos2d-x-3.16\tools\cocos2d-console\bin\cocos luacompile -s src -d src_luac -e -k demoKey -b demoSign --disable-compile即可在src_luac文件夹中看到加密好的luac文件。
-s src为项目中lua代码所在的目录,
-d src_luac表示的是加密后的luac文件的输出存储路径,
-k demoKey -b demoSign与AppDelegate.cpp中设置的key和sign保持一致,
--disable-compile使其只是进行简单的XXTEA加密,而不编译为64bit字节码(有些机器不支持)。

5.为了方便使用,我们在demo项目根目录创建一个luacEncrypt.bat文件,将上述命令代码放入该bat文件中,双击即可执行其中的命令。

Cocos2d-lua中lua代码加密成luac相关推荐

  1. 理解lua中的metatable和__index

    Lua 学习笔记--metatable和__index 版权声明:本文为博主 Fisher1006 原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:ht ...

  2. Lua中的面向对象实现探讨

    Lua中,面向对向是用元表这种机制来实现的.元表是个很"道家"的机制,很深遂,很强大,里面有一些基本概念比较难理解透彻.不过,只有完全理解了元表,才能对Lua的面向对象使用自如,才 ...

  3. Lua中的16进制,2进制,10进制转换

    Lua中的数据转换 10进制number转二进制字符串(0~255) function _byte2bin(n)local t = {}for i=7,0,-1 dot[#t+1] = math.fl ...

  4. lua中自定义加载lua的path

    有两个方法: 一种方法是在lua源码中扩展宏: #define LUA_PATH_DEFAULT \LUA_LDIR"?.lua;" LUA_LDIR"?\\init.l ...

  5. Java代码加密混淆工具有哪些?

    在Java中,代码加密混淆工具可以帮助开发者将源代码进行加密和混淆处理,以增加代码的安全性和保护知识产权.以下是一些流行的Java代码加密混淆工具: 第一款:ProGuard:ProGuard Pro ...

  6. Lua代码加密,防止代码反编译

    加密目的: 在游戏开发中,脚本作为一种资源文件,就像图片视频一样,被引擎所引用.如果不对脚本进行加密,不怀好意的人轻松解压出脚本文件,给你瞬间复制一个游戏出来.在程序发布前一般会对脚本进行加密,防止代 ...

  7. lua 代码加密方案

    require 实现 require函数在实现上是依次调用package.searchers(lua51中是package.loaders)中的载入函数,成功后返回.在loadlib.c文件里有四个载 ...

  8. ulua中lua代码使用反射调用c#详解

    1.官方解释 2.代码层分析 2.1 官方脚本 2.2 语句 luanet.load_assembly('UnityEngine')解析 LuaState lua = new LuaState(); ...

  9. FreeSWITCH IVR中lua调用并执行nodejs代码

    一.功能需求: 通过FreeSWITCH的IVR按键调用相应的脚本文件:nodejs提供很多的模组,可以方便的与其它系统或者进行任何形式的通讯,我的应用是通过nodejs发送http post请求: ...

  10. openresty开发系列24--openresty中lua的引入及使用

    openresty开发系列24--openresty中lua的引入及使用 openresty 引入 lua 一)openresty中nginx引入lua方式 1)xxx_by_lua   ---> ...

最新文章

  1. PCL工程的CMakeList.txt文件书写规范
  2. 去除文本框点击的背影
  3. springmvc 配置多个数据源,并动态切换
  4. wcf http 返回图片
  5. mysql通过data目录恢复数据库
  6. 最优化学习笔记(二)一维搜索
  7. iconv 判断字符编码_php下用iconv函数转换字符编码的问题
  8. eureka 客户端服务启动了又失败了_Spring cloud Eureka服务注册与发现详解
  9. 继承中父类、子类构造器中的super. 和super()运用
  10. [CCS] CCS的安装及配置
  11. 第一章---近红外光谱概述2(近红外光谱分析难点及解决思路)
  12. java字符串hash算法_Java常用HASH算法总结【经典实例】
  13. kali2022.1 firefox developer (换成开发者版本火狐)
  14. 手机邮箱怎么弄_如何在iPhone6手机上设置邮箱?
  15. 品达物流TMS项目_第6章 数据聚合服务开发(pd-aggregation)
  16. linux-防火墙开放端口
  17. /date()/转换成常见的时间格式
  18. 无法实例化xxx对象
  19. Excel图表的美化操作
  20. 科技点亮课堂,智能黑板解决方案

热门文章

  1. 第二学期无人机操作师结业复习测试
  2. STM32驱动AD9833
  3. B4A-Basic4android
  4. arping 命令解析
  5. win10 下mysql环境变量配置
  6. websockets_Websockets在数据工程中鲜为人知的模式
  7. 2021-09-09
  8. 基于web的博客系统的设计与实现
  9. Profinet IO设备
  10. B站郝斌C语言指针笔记