【转】UNITY之LUA加密
来自:Lua加密
两种方式:一种用luac,一种用luajit
luac加密:
1、lua本身可以使用luac将脚本编译为字节码(bytecode)从而实现加密,去官网下载Lua源代码包(http://www.lua.org/ftp/),下好解压,目录如下

2、启动一个Visual Studio 命令行工具,用32位命令行会生成32位版本,用64位则生成64位版本

3、在命令行中使用cd 进入lua目录(刚才解压后的目录),然后输入 "etc\luavs.bat" 回车
4、如果没有问题的话,会显示生成过程,(64位下还会有几个warning C4334)、完成后会在src目录下找到生成结果,4个主要文件一个.exp的中间文件,luac.exe生成完毕,
然后把luac.exe所在存在的目录设为环境变量,如果不设置的话,那么执行生成字节码的dos命令的时候就要转到luac.exe所在的目录才能执行此dos命令了,都懂得,不多说
5、(1)、新建一个名为1.lua的文件,里面只有一句话print("Hello Lua"),新建一个空的out.lua脚本文件
(2)、开始--运行--cmd
(3)、luac -o out.lua 1.lua
注: luac -o [编译后脚本名] [脚本名],必要时带上脚本路径,如:

然后实验一下,执行这个字节码脚本,可以看到lua原生的解释器可以直接解析luac编译出来的bytecode脚本,很方便!
luajit加密:
1、官网下载luajit(http://luajit.org/luajit.html),解压,目录如下

2、在命令行中使用cd 进入luajit下src的目录,然后执行输入msvcbuild.bat,执行此批处理文件,编译出luajit.exe
3、接下来就可以使用luajit.exe编译lua脚本的bytecode了:luajit -b [脚本名] [编译后的脚本名],执行完后会在src目录下生成一个已经编译成bytecode的lua文件
此时即使把此路径加入环境变量是没用的,进行luajit加密命令的时候必须使用cd进入此目录(C:\Users\hengjingjing\Desktop\LuaJIT-2.0.4\src),因为luajit加密,必须是luajit.exe和src下的jit文件夹配合使用才管用!
如果unity项目用的是基于ulua扩展的其他lua版本(cstolua、slua),或者本身用的就是ulua,那么要用luajit加密方式,因为ulua底层就是用的luajit
两者比较:
http://lua-users.org/lists/lua-l/2011-06/msg01052.html
LuaJIT is open source software, released under the MIT/X license.
LuaJIT builds out-of-the-box on most x86 or x64 operating systems
(Linux, Windows, OSX etc.) and can be cross-compiled for embedded
systems based on ARM or PPC/e500 CPUs.
The LuaJIT bytecode format is portable and ~40% smaller than Lua
bytecode. The LuaJIT bytecode loader is 10x faster than the Lua
bytecode loader. And LuaJIT bytecode loads 30x-40x faster than
source code. Note that this is unrelated to the _execution_ speed
of the code itself -- it doesn't matter how the code was loaded. 可以看出:Luajit跨平台,满足于32位和64位,并且加密后的bytecode比luac生成的bytecode至少小40%,速度也是它的10倍多,总之luajit就是比lua原生的好
【转】UNITY之LUA加密的更多相关文章
- Unity Mono脚本 加密
加密环境 引擎版本:Unity3D 5.3.4 及更高版本 (使用Mono而并非IL2CPP) 操作系统:CentOS 6.2(Final) 加密环境:Android.IOS(暂定) 加密对象:C#源 ...
- Cocos2d-x--iOS平台lua加密成luac资源方法和Jsc文件<MAC平台开发试用--windows平台暂未研究>
首先要说.近期真的是太忙了.好久没写博客了,今天正好有空,就写一下近期在写游戏中的一些发现: 话说,基于Cocos2dx 引擎 + 脚本写游戏,至今的感触就是能够进行增量更新和即时编译 ...
- tolua#是Unity静态绑定lua的一个解决方案
tolua#代码简要分析 2017-04-16 23:02 by 风恋残雪, 98 阅读, 1 评论, 收藏, 编辑 简介 tolua#是Unity静态绑定lua的一个解决方案,它通过C#提供的反射信 ...
- Lua加密
两种方式:一种用luac,一种用luajit luac加密: 1.lua本身可以使用luac将脚本编译为字节码(bytecode)从而实现加密,去官网下载Lua源代码包(http://www.lua. ...
- cocos lua 加密方案
cocos2d使用的是luajit,lua原生编译出来的bytecode和luajit是不兼容的,所以直接用luac法编译出来的bytecode脚本无法在cocos2d中使用. 目前所指的解决方案有2 ...
- lua 加密
项目要求对lua脚本进行加密,查了一下相关的资料 ,得知lua本身可以使用luac将脚本编译为字节码(bytecode)从而实现加密,试了一下,确实可行.下面是使用原生的lua解释器编译字节码:1.新 ...
- cocos2dx lua 加密
cocos2dx-lua项目发布时,为了保护lua源码,需要对lua进行加密.通常分为两种方式:加密文件和编译为字节码. 1.加密文件 前提是你不用luajit,而使用lua.这样这种方法是真正加密, ...
- Unity进阶----Lua语言知识点(2018/11/08)
国内开发: 敏捷开发: 集中精力加班堆出来第一个版本 基本没啥大的bug 国外开发: 1).需求分析: 2).讨论 3).分模块 4).框架 5).画UML图(类图class function)(e- ...
- 修改Unity中Lua文件的默认打开程序
项目中引用了XLua,而Lua文件又是以txt文件结尾的,当修改系统的扩展脚本编辑器为vs后双击lua文件(xx.txt)默认也使用vs打开了,无提示的黑白文本编辑 昨办? -. 后来看到网上有写Un ...
随机推荐
- 【转】每天一个linux命令(22):find 命令的参数详解
原文网址:http://www.cnblogs.com/peida/archive/2012/11/16/2773289.html find一些常用参数的一些常用实例和一些具体用法和注意事项. 1.使 ...
- sed 给文件每行末尾追加相同字符
给文件file1每行末尾追加字符 ; sed 's/$/;/' file1
- 【jmeter】jmeter之-断言和检查点
断言就类似LoadRunner中的检查点.对上一个请求返回的信息,做字符串.数据包大小.HTML.XML.图片等做判断,确保返回的信息的准确性. 简单的来理解一下,上一章讲到,我们对用户名和密码进行了 ...
- linux sh文件提示 no such file or directory
Linux执行.sh文件,提示No such file or directory的问题的解决方法 12-06-28 16:59作者:love__coder Linux执行.sh文件,提示No such ...
- fiddler抓包HTTPS请求
fiddler抓包HTTPS请求 标签: fiddlerhttps抓包 2016-03-29 21:24 23293人阅读 评论(2) 收藏 举报 分类: 不登高山不知天之高也(1) 版权声明:本 ...
- BASIC-8_蓝桥杯_回文数
示例代码: #include <stdio.h> int main(void){ int i = 0 ; int a = 0 , b = 0 , c = 0 , d = 0 ; for ( ...
- bzoj3668 起床困难综合症
Description 21 世纪,许多人得了一种奇怪的病:起床困难综合症,其临床表现为:起床难,起床后精神不佳.作为一名青春阳光好少年,atm 一直坚持与起床困难综合症作斗争.通过研究相关文献,他找 ...
- java 调用windows bat脚本
当我们需要在java程序中调用外部程序,我们可用通过Runtime.exec()调用来完成. The class java.lang.Runtime features a static method ...
- sersync基于rsync+inotify实现数据实时同步
一.环境描述 需求:服务器A与服务器B为主备服务模式,需要保持文件一致性,现采用sersync基于rsync+inotify实现数据实时同步 主服务器A:192.168.1.23 从服务器B:192. ...
- ESXI服务器的四个网口负载均衡
什么是NIC Team(负载均衡) NIC Team其实就是将多个物理网卡同时分配到相同的端口/端口组,目的是为了实现带宽聚合,负载均衡以及故障转移 配置NIC Team 一.选择一台ESXi主机,打 ...