当前位置:首页 » 编程软件 » lua52编译

lua52编译

发布时间: 2023-10-21 21:06:24

⑴ LUA怎么像C语言一样编译生成可执行文件

下载源代码,解压

解压后,包含文件:
1、doc 文件夹,lua的更新说明,网页格式
2、src 文件夹,lua的源文件,C语言实现
3、Makefile , 编译用配置文件,我们这里就不用它了
4、README , 不用我说了吧,就一说明文件,我们也用不着

进入src文件夹,新建一个文本文件。并改名为vslua.bat,提示是否更改后缀名,选择是并点击。

右键我们建立的vslua.bat文件,以记事本打开

编写如图代码,为了锻炼大家的动手能力,加深理解,我就直接上图不打文字。反正一定能看清的。记得编写后保存哦!

到开始菜单选择vs的开发人员命令提示工具。

在命令工具中输入:
1、“cd x:\你的src文件夹路径\src”[不包含引号],回车
2、“vslua.bat” 回车
等待执行结束。如果不错的话,你到src上级目录就能发现新生成了一个bin文件夹。文件夹里面放的就是生成好的exe、lib、dll。

最后测试一下新生成的lua.exe。

⑵ 怎样把.lua编译成.exe可执行文件(详细点!最好附图)

常见的方法是用c写一个宿主
或者 比较方便而且比较现成的方法是载一个luaaio
aio就是all in one 的缩写
把lua.exe改成脚本入口lua文件名
比如 main.lua 对应的就是main.exe 然后准备好相应的扩展需要的dll 就可以运行了

⑶ Lua是什么编程语言

  1. Lua 是一个小巧的脚本语言。 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua由标准C编写而成,几乎在所有操作系统和平台上都可以编译,运行。Lua并没有提供强大的库,这是由它的定位决定的。Lua 有一个同时进行的JIT项目,提供在特定平台上的即时编译功能。

  2. Lua脚本可以很容易的被C/C++代码调用,也可以反过来调用C/C++的函数,这使得Lua在应用程序中可以被广泛应用。不仅仅作为扩展脚本,也可以作为普通的配置文件,代替XML,ini等文件格式,并且更容易理解和维护。 Lua由标准C编写而成,代码简洁优美,几乎在所有操作系统和平台上都可以编译,运行。一个完整的Lua解释器不过200k,在目前所有脚本引擎中,Lua的速度是最快的。

⑷ lua 怎么反编译

lua源文件--obfuscate-->lua源文件(混淆后)--compile-->luac文件(带调试用的变量名和行号)--strip-->luac文件(不带调试信息)
lua/luac--加密/打包-->数据文件

数据文件--解包/解密-->lua/luac-->lua虚拟机

1. 跟踪,脱壳,解包,解密,获得 luac

追 luaL_loadbuffer luaL_loadfile lua_load 应该可以找到 解密函数。
hook 这3个函数,导出解密后的数据,直接就是 luac 文件。如果没编译甚至是 lua源文件。

hook luaV_execute 可以拿到 Proto* ,想办法用 luaU_mp 导出。luaD_precall 应该没必要搞。

2. 非标准 luac 处理

我们有两种方案来处理得到的 luac

1. 得到一个能够执行上述非标 luac 的 lua 版本
搞清楚编译方式,改 lua 源文件,编译出一个,这样做什么都可以,还能编译出对应的 luadec 。
如果能找到 lua51.dll 之类的就直接调用吧。但是,只能用于导出 luac 对比文件格式,或者执行找到的几个关键函数。
2. 将非标 luac 转换成标准格式 luac,正所谓:山不来就我,我便去就山
非标准 luac 是怎么做的:

1. bad header 改文件头
#define LUA_SIGNATURE "\033Lua" // lua.h
2. bad header 改数据类型
// luaconf.h
#define LUA_NUMBER_DOUBLE
#define LUA_NUMBER double
LUA_NUMBER to float
LUA_NUMBER_SCAN to "%f"
LUA_NUMBER_FMT to "%.7g"
l_mathop(x) to (x##f)
lua_str2number to use strtof

3. bad code OpCode 重定义
// 改有 "ORDER OP" 的地方
/* grep "ORDER OP" if you change these enums */
enum OpCode; // lopcodes.h
const lu_byte luaP_opmodes[]; // lopcodes.c
const char *const luaP_opnames[]; // lopcodes.c

⑸ 如何把lua编译成luac

不是在lua解释器里用的……
命令行下luac 文件名
你这样等于是试图解释lua语句luac.exe asd.lua,同时提供两个table的键值,自然非法

热点内容
hp存储扩容 发布:2024-11-17 23:29:16 浏览:569
在ftp中put表示什么 发布:2024-11-17 23:29:12 浏览:383
mvc多文件上传 发布:2024-11-17 23:13:56 浏览:155
玩游戏硬盘缓存32m 发布:2024-11-17 23:03:42 浏览:525
蓝光存储系统 发布:2024-11-17 23:03:41 浏览:436
地平线4提示配置低于最低怎么办 发布:2024-11-17 22:54:38 浏览:611
注册银行卡账户密码填什么 发布:2024-11-17 22:54:35 浏览:537
java压缩上传图片 发布:2024-11-17 22:26:59 浏览:627
plc编程课件 发布:2024-11-17 22:18:23 浏览:469
我的世界服务器信号一直在检测 发布:2024-11-17 22:09:52 浏览:547