问题标签 [luac]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
436 浏览

lua - 加密时如何带调试信息然后lua代码使用luac

我在“orgin.lua”文件中写了以下代码

当它崩溃时,它将生成以下信息:

为了防止反编译并确保代码安全,我使用以下命令转换我的代码:

我知道参数 -s 是剥离调试信息,然后崩溃时不显示行数:

但是如何在加密时带调试信息然后lua代码使用luac?有什么解决办法吗?

0 投票
2 回答
716 浏览

lua - 如何用.c格式反编译lua [编译为C]

我试图编辑一个程序以使其与我自己的程序灵活,但有一个问题。它被编码为 LUA 语言,并被编译为C

现在我正在尝试反编译这个文件并在这个文件上进行开发。有人可以给出任何解决方案吗?我发现我们可以像这样编译 LUA 文件:

cc -o test test.c -Wall -I/usr/include/lua5.1 -llua5.1

但现在我正在尝试反编译它。请帮忙。

编译lua为.C文件的照片

0 投票
1 回答
707 浏览

c - 使用 require 和 dofile 将 lua5.2 文件编译为一个

我可以将所有文件编译为一个,然后从 C 中执行吗?在我的 lua 文件中,我使用了 require 和 dofile 函数。当我尝试使用 luac 进行编译然后我想执行编译后的文件时,它将无法找到我在编译文件中构建的模块。我认为通过 require 和 dofile 函数 luac 编译器过程包含 lua 文件,例如 javascript 编译器。简而言之,Javascript 编译器将导入文件添加到一个。

当您为应用程序发布将lua脚本放在一个文件中时,这是一种好习惯吗?因为我有一些带有 lua 脚本的目录,当我发布时,我必须拥有所有具有可读形式二进制文件的 lua 文件。

0 投票
1 回答
877 浏览

string - 是否可以从 Lua 编译代码中隐藏字符串?

我的代码中有一个指定为字符串的文件的路径,并且我不希望在 luac 转换后可见。是否有可能以某种方式混淆这条线?我的代码是:

谢谢!

0 投票
2 回答
789 浏览

c - Lua C 函数调用返回 nil

我为 Lua 写了一个简单的 C 插件:

使用此 GCC 命令成功编译代码:

在 Lua 5.3 REPL 中,我也能够成功找到并导入模块,但函数调用的返回值始终为nil

没有错误被抛出,因为我能够printf在返回值之前在 C 代码中得到结果,我知道代码被调用并且结果计算成功。

有任何想法吗?

Edit1:通过不使用局部变量,我得到了这个堆栈跟踪而不是一个 nil 值:

0 投票
1 回答
719 浏览

c++ - Lua C API 自定义打印函数,字符串中传入空格时不调用

问题描述: 我创建了一个自定义 C++ 函数print(),它应该作为全局推送到表中,以便用户可以使用该print()函数打印到调试控制台。这个函数在某种程度上有效,但是,当你尝试打印一个带有空格的字符串(超过一个单词)时,这个函数根本不会被调用......这让我非常困惑,因为我不知道为什么。如果我尝试调用诸如print("Hello!")控制台之类的东西,将会有“你好!” 打印到它,但是如果我尝试打印诸如print("Hello world!")根本不会调用该函数之类的东西,我知道这一点,因为我使用了一个消息框来在调用该函数时发出警报。

附加信息: 因此,我能找到的最接近的问题是询问如何使用 Lua C API 在 C++ 中制作自定义打印函数,然后将其推送到全局表上。我已经可以做到这一点,并且我的功能在一定程度上起作用。我的函数没有被推送到 Lua C API 的全局表中,而是被推送到我使用lua_newtable(L, s);. 但是,两种方法我都试过了,没什么区别。到目前为止,此打印功能不支持表格或功能,我只是专注于找出并修复该功能无法在一个单词上打印字符串的原因。以防万一您想知道,为此使用了 Lua v5.1.5 和 Microsoft Visual Studio 2017。调试模式,x86。

代码(C++):

如果有人可以帮我解决这个问题,那就太好了!

0 投票
0 回答
80 浏览

lua - 快速转储从 Lua 传递到 C 的大表

为了快速保存包含大型一维数组的 Lua 表(数组的数量是已知的,但元素的数量不固定。每个数组中大约有 800,000 个元素),我计划通过以下方式使用 Lua C 绑定-

Lua 代码如下所示——

上面的代码生成了两个内容错误的二进制文件。这里有什么问题?

PS:我使用的是 Lua 5.1。我不确定这是否是转储大型 Lua 表的最快方式。建议总是受欢迎的。

0 投票
0 回答
108 浏览

c++ - LuaC 库:某些函数的访问冲突

我使用 Visual Studio 2017 编写了一个相对基本的 C++ lua 模块。它从应用程序中导出函数,然后可以从在所述应用程序中运行的 lua 脚本调用这些函数。它似乎在大多数情况下都可以正常工作,除了具有两个以上参数的函数会导致访问冲突。下面是代码的简化变体。

第一个函数按预期工作而不会崩溃,而接受两个以上参数的函数(例如第二个)会导致冻结或访问冲突。为什么会发生这种情况有什么特别的原因吗?

谢谢。

0 投票
0 回答
94 浏览

lua - 如何在反编译后删除已编译 LUA 中的无用数据,然后像修改/不修改一样重新编译?

我正在尝试使用 LUAC 5.1.5 编译修改后的 LUA,但它们总是以比原始游戏文件更大的大小进行编译,我确实已经排除了编译位置数据,但还有什么?我尝试了每个 LUAC 命令,但最终还是变大了。游戏是愤怒的小鸟经典。

0 投票
1 回答
339 浏览

c++ - 将 luac 字节码嵌入到 C/C++ 源文件中

如何将 lua-bytecode-string 包含到 C/C++ 文件中?

现在,如果您可以将此字节字符串插入到 C/C++ 文件中,您实际上可以

这使得无需test.lua在运行时加载。您甚至不必test.lua在运行时进行解释,对吗?

更新:

该问题的前两条评论有助于生成字节串,以便您可以将其包含在 C/C++ 代码中。 从这个答案我得到了这个想法:

这创造了这个:

这很棒,但这不适用于luaL_loadstring,因为

该函数使用 lua_load 加载以零结尾的字符串 s 中的块。

注意: 中的数据有零test