如何将 *.lua 文件编译为资源库?

现在我想把一堆 *.lua 文件藏起来放到 xx.so 或 xx.dll 里面,并在 *.c 文件中加载它们。

这个能做到吗?

如果可以,那怎么在 c 文件中加载它们?

原文链接 https://stackoverflow.com/questions/8277814

点赞
stackoverflow用户409744
stackoverflow用户409744

如果你要隐藏代码的话,我不会使用 Lua(因为它总是可以反编译),但你可以简单地按照以下步骤来完成:

  • 使用 luac 编译脚本文件,这将产生包含预编译目标代码(非机器代码)的输出文件。(这一步是可选的,但它能使编译后的文件更难阅读和查找实际代码。)
  • 编写一个简单的工具,以字符数组的形式读取上述文件。

最终的代码应该会看起来像这样:

const char firstlua_lua[] = {0x11,0x12,0x13,0x14,...};

这将使用编译后的 lua 脚本中实际的字节。 然后,你就可以像加载任何脚本源代码一样运行这些 "strings"。

2011-11-26 14:33:50