当你发布lua时,你或许不想用户看到你的lua源码,更不想用户修改你的lua代码和系统内部的秘密,那就需要用别的方式来发布。
最终的文本文件可以通过lua作者提供的标准发布版本中的程序来执行。这个程序称做luac.exe,把lua文本文件“编译”成二进制的文件。这样就可以让别人更难知道你的游戏是如何运行的,采用了什么技术。
当写好一个lua文件后,可以通过一个典型的编译命令去“编译”这个文件:
这一行代码会编译helloworld.lua脚本并在helloworld文件中生成二进制数据。
lua解析器并不关心你传给它的是文本文件还是二进制文件,也不关心扩展名是什么。
用这个方法,就不用担心别人可以看到你的代码了。
补:
发现当用到require加载某些子模块时会有出错。根据《Lua 程序设计第二版》第15章所说:
当require一个模块mod.sub时,require会用原始的模块名“mod.sub”作为key来查询table package.loaded和package.preload,其中,模块名中的点在搜索中没有任何意义。
当搜索一个定义子模块的文件时,require会将点转换为另一个字符,通常就是系统的目录分隔符。转换之后require就像搜索其他名称一样来搜索这个名称。
所以最好的方法是在编译完lua脚本后,也把二进制文件改成.lua后缀。
分享到:
相关推荐
当运行`luac`命令时,Lua编译器会将这些源代码转换成字节码(Bytecode),这是一个二进制格式,可以在Lua虚拟机上执行。这个过程被称为编译,生成的文件通常以`.luac`为扩展名。编译的主要目的是为了提高程序的加载...
首先,LUAC编译器的工作原理是将Lua源代码解析成抽象语法树(AST),然后将其转化为二进制的字节码。这个字节码不是人类可读的,但仍然可以通过Lua虚拟机(VM)执行。LUAC编译的字节码文件通常以".luac"为扩展名。 ...
luac将Lua源代码编译为字节码,并写入到一个.lua.out文件中,这是一个二进制文件。预编译后的代码可以更快地加载和执行,因为它避免了运行时的解释过程。 反编译是将已编译的字节码还原为源代码的过程。虽然Lua的...
总览LuaDec是lua 5.1的Lua反编译器,并且是lua 5.2和5.3的实验版。...用法反编译lua二进制文件: luadec abc.luac 反编译lua源文件以进行测试和比较: luadec abc.lua 分解lua源代码或二进制文件luadec
3. **luac53.exe**:这个是 Lua 的编译器,可以将 Lua 源代码编译成字节码,生成`.lua`文件的预编译版本`.lc`。这样可以提高程序加载速度,因为解释器可以直接执行字节码,而无需每次都解析源代码。 4. **wlua53....
Lua 字节码是一种二进制格式,它包含了 Lua 代码的结构和指令。Unluac 通过解析这些字节码,重构出源代码的逻辑和结构。这个过程涉及到对 Lua 字节码指令的理解,以及对 Lua 语法的深度理解。Unluac 在反编译过程中...
而`luac.exe`则是编译器,它将Lua源代码转换为预编译的字节码,这个字节码是二进制形式,可以更快地由Lua虚拟机执行。 2. Lua字节码与反编译: `luac.exe`编译后的luac文件包含了Lua程序的字节码,虽然不是人类可...
当你有`.lua`源文件时,可以使用`luac`来编译它,生成`.luac`或`.lua.bin`的二进制文件。 反编译工具则是将已经编译过的Lua chunk还原成人类可读的源代码。这些工具对于调试、分析或逆向工程是很有用的。在这个资源...
4. 序列化和反序列化:通过Lua代码实现protobuf消息的序列化(转换为二进制格式)和反序列化(从二进制数据恢复消息)。 通过这种方式,开发者可以利用protobuf的强大功能和Lua的便捷性,构建高效且易于维护的游戏...
1. **读取LUAC字节码**:反编译程序首先读取由LUAC编译器生成的二进制文件,这些文件扩展名为`.lua`或`.luac`。 2. **解析字节码**:LUAC字节码是由一系列操作码(opcode)组成的,反编译器需要解析这些操作码,...
这个压缩包包含了针对这两种架构的二进制文件,使得无论是在32位还是64位系统上,都能运行LuaJIT。 在压缩包内的文件中,`luajit.exe`是LuaJIT的可执行程序。它可以直接运行Lua脚本,并利用其背后的Just-In-Time ...
"glue"工具在这里起到了关键作用,它能够将SRLua解释器与用户的Lua源代码合并,生成一个自包含的二进制文件。 在提供的文件列表中,有三个关键文件: 1. lua53.dll:这是Lua 5.3.5的动态链接库文件,包含了Lua运行...
然而,字节码是二进制格式,对人类不友好,不易阅读和理解。这就催生了反编译的需求,UnluacGUI便应运而生。 UnluacGUI是Unluac的一个图形化版本,Unluac是一款强大的LUAC反编译器,能够将Lua字节码还原为可读的源...
最常见的数字系统包括十进制(Decimal)、二进制(Binary)和十六进制(Hexadecimal)。这些系统在编程、硬件设计、数据存储等领域扮演着至关重要的角色。本文将深入探讨十进制如何转换为十六进制,以及这两种数字...
- **Bin**:二进制文件目录,可能包含编译后的可执行文件或库文件。 通过深入理解和实践这些代码,开发者不仅可以学习到如何保护Lua代码,还能了解到Lua虚拟机的工作原理,这对于提升自身在Lua编程领域的专业技能...
Windows7 下 Lua 的编译和配置使用 Visual Studio ...它把.lua 的文件处理后变成.out 的二进制文件,然后就可以用 Lua.exe 执行它在控制台执行 Luac.exe Test.lua 在当前目录下会生成 luac.out 的文件。然后
编译过程中,会生成可执行的lua和luac二进制文件,lua是解释器,luac是编译器,可以将Lua脚本编译为字节码。 3. **安装**:通常,我们使用`make install`命令将编译好的Lua程序安装到系统默认的位置,如/usr/local/...
**wrk工具详解** ...它使用了LuaJIT脚本语言,可以定制测试行为,提供了丰富的报告数据,包括吞吐量、响应时间和...通过这些预编译的二进制包,用户可以在不同Linux环境下快速开始压力测试,无需复杂的配置和编译过程。
4. **二进制**:可能指的是预编译好的 Lua 和 luasocket 的二进制可执行文件,可以直接在支持的平台上运行,无需用户自行编译。 根据提供的文件名列表,我们可以推测这个压缩包包含以下内容: 1. **setup_lua_env....
"UnluacGUi+6_13.rar"可能是Unluac的一个图形用户界面版本,Unluac是一个开源的LUA反编译器,它可以将LUAC编译后的二进制代码转换回可读的LUA源代码。这个版本可能是6.13的更新,通常这样的命名方式表示软件的版本号...