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