Lua的文件添加到C ++程序

问题描述 投票:1回答:1

我有一个在C ++编译的程序(TG)运行的Lua脚本。我的C ++程序tdbot。该Lua的脚本编写在Lua 5.2。有什么办法,我可以在我的Lua文件添加到这个C ++程序?

我想实现这个保护我的许可证代码。

c++ lua
1个回答
0
投票

怎么样使用Lua字节码?不同于嵌入Lua代码,也不是那么微不足道的是反向工程。当然,这是不是100%安全的,但它比LUA文本代码更难。

如果你不熟悉的字节码,它是一个虚拟机是一种汇编语言。从概念上讲“C码” - “汇编代码”关系类似于“Lua代码” - “LUA字节码”。

让我告诉你如何做到这一点。

首先编译a.lua文件到Lua字节码。

$ luac -o a.luac a.lua

你现在有a.luac这是LUA字节码。它是二进制格式。您可以以同样的方式使用luaL_loadfile。它会自动检测是否有文本代码或字节码。因此,例如:

#include "lauxlib.h"
#include "lua.h"
#include "lualib.h"

int main() {
  lua_State* L = luaL_newstate();
  luaL_openlibs(L);

  luaL_loadfile(L, "a.luac");
  lua_pcall(L, 0, 0, 0);

  lua_close(L);

  return 0;
}

如果你真的需要在你的C代码中嵌入该代码,你可以考虑从内存而不是文件加载Lua代码/字节码luaL_loadbuffer。还需要预先嵌入过程字节码。

© www.soinside.com 2019 - 2024. All rights reserved.