cocos2d 之lua加密

26 篇文章 1 订阅

加密方式

lua 代码加密方式很很多种,这里只讲最简单的一种,就是把代码编译成二进制字节码。lua 是一门脚本语言,不需要经过编译就可以使用 lua 解释器来执行;但我们也可以把 lua 代码事先编译成二进制文件,这样就达到了加密的方式。

使用 lua 编译器

最简单也最直接的方式就是使用 lua 编译器来编译 lua 代码,编译的方式很简单,打开命令行,输入下面的命令

luac -o out.lua source.lua

test.lua 文件内容如下:

print("test lua")

然后终端输入

luac -o out.lua test.lua

这样我们就能将test中内容转换成二进制输出到out.lua中了

然后通过终端打开lua解析器,require("test")这时候我们看见终端输出了test lua。

其实lua解析器无论是lua源码还是加密后的字节码都能执行。

但是通过此方式加密后,cocos2d是不能运行的,因为引擎使用的是luajit加密的,虽然都是二进制,但是机密格式不一样,所以我们要通过luajit将lua文件加密以来供给cocos2d使用。

使用 luajit

使用 lua 编译器来编译 lua 代码虽然简单方便,但编译后的字节码却不能在 cocos2d-x 中使用,原因是 cocos2d-x 使用的是 luajit。luajit 是一套合适 c 语言写的 lua 解释器代码,是一种即时编译器(JIT),与原生的 lua 编译器有所区别。也就量说同一个文件使用 luajit.exe 编译后的字节码和使用 luac.exe 编译后字节码是不一样,因此使用 luac.exe 编译后的字节码不能在 cocos2d-x 中正确加载,正确的方式是使用 luajit 来编译 lua 源代码。

获取 luajit

看了网上的教程,都是说在 %COCOS_ROOT%\scripting\lua\luajit\LuaJIT-2.0.1\src 目录下有个 msvcbuild.bat 批处理文件,然后执行这个脚本就可以生成一个 luajit.exe 文件。但这是 cocos2d 2.x 的做法,在 3.x 中并没有找到这个脚本文件。网上的教程抄袭成风,找了好几篇博客,内容全是一模一样的,都是讲 2.x 的做法。最后自己使用 everything 工具搜索资源管理器,发现在 %COCOS_ROOT%\tools\cocos2d-console\plugins\plugin_luacompile\bin 下面就有一个现在的 luajit.exe;从 2.x 到 3.x 总要有些进步的,现在已经不用自己去生成 luajit 了,引擎已经帮我们集成好了。

使用 luajit 来编译源代码

使用 luajit 编译 lua 源代码和使用原生的 lua 编译器差不多,在 luajit 所在目录打开命令行,输入

luajit.exe -b source.lua target.lua

这样我们就生成了,通过luajit加密后的lua文件,将此文件放入cocos2d工程中就能够使用了。

批量加密转换lua文件脚本:encryptLua.pycocos2d批量加密lua脚本-cocos2D工具类资源-CSDN下载

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值