我有一个用C ++编写的程序(一个小游戏),它从Lua文件中获取它的配置(它们基本上是程序的模块)。例如,程序获取其名称,版本以及它是什么以及不允许执行的操作以及播放器可以从Lua文件执行的操作。问题是,当我开始将这个小游戏分发给少数人时,他们可以配置我不想发生的Lua文件,所以我想到加密它们然后在程序启动时解密它们但我无法理解如何实际做到这一点,以什么方式。总而言之,这是一个我想象的相当简单的任务吗?
我怎么看是这样的:用某种加密方法用某些程序加密lua文件。将C ++代码编写到程序中,首先解密Lua文件,然后开始读取它们。这个概念是否正确?加密本身可能会尽可能弱,只要它有效。
答案 0 :(得分:5)
通过使用luac,我终于能够完成所有工作。
我用这句话用luac
编译它(在那里,tester.lua
是输出文件的名称,而test.lua
是编译的文件):
luac -o tester.lua test.lua
无论是否编译,它都会自动运行。现在问题是,任何人都可以将已编译的lua文件放在一个非编译版本中,它仍然可以工作,因为dofile读取正常和已编译的lua。你会把fellas建议作为解决方案,以便dofile只读取已编译的lua文件而不是未编译的lua文件?
答案 1 :(得分:4)
是的,基本上就是这样。
假设你现在有类似
的东西runLuaFromFile("config.lua");
你想做什么
runLuaFromMemory(myString);
显然runLuaFromFile
和runLuaFromMemory
不是真正的函数,它们只是你正在使用的Lua系统的占位符
答案 2 :(得分:3)
分发预编译的Lua文件而非源代码可能足以满足您的需要。见luac
。