我在Google上找不到任何加密/混淆我的lua文件的工具,所以我决定在这里问一下.也许有些专业人士知道怎么做?(免费).
我现在在lua做了一个简单的游戏,我不希望别人看到代码,否则他们很容易作弊.如何将.lua文件中的整个文本设为随机字母和内容?
我以前用C#编程,我有一个名为SmartAssembly的.NET混淆器,效果很好.当有人试着检查我的应用程序的代码时,它只是一堆字母和数字以及中文字符和东西.
任何人都知道任何程序可以为lua做到这一点吗?只需加载要加密的文件,单击加密或soemthing,然后bam!有用!?
例如:
print('Hello world!')
Run Code Online (Sandbox Code Playgroud)
会变成类似的东西
sdf9sd@@@&/sdfsdd9fd0f0fsf/&
Run Code Online (Sandbox Code Playgroud)
只需预编译您的文件(块)并加载二进制块.luac
允许您删除调试信息.如果这还不够,请在编译的lua上定义自己的转换,尽可能剥离名称.尽管如此......对于lua混淆器的需求并不是那么多......
此外,您失去了使用嵌入式脚本语言的一个主要优点:可扩展性.
最简单的混淆选项是按照其他人的建议编译你的Lua代码,但它有两个主要问题:(1)在编译的代码中仍然可以很容易地看到字符串,以及(2)Lua解释器的编译代码不是可移植的,因此如果您针对不同的体系结构,则需要为它们设置不同的编译块.
第一个问题可以通过使用预处理器来解决,该预处理器(例如)将您的字符串转换为一系列数字,然后在运行时将它们连接回来.
如果不更改解释器,第二个问题就不容易解决,但如果你有解释器的选择,那么LuaJIT会生成可在其所有平台上运行的可移植字节码(运行相同版本的LuaJIT); 请注意,LuaJIT字节码与Lua字节码不同,因此它不能由Lua解释器运行.
一个更复杂的选择是加密代码(可能在编译之前),但是你需要权衡任何其他机制(以及你自己的工作),以防止对用户造成的任何不便以及任何破坏保护的人造成的任何损失.我个人会使用足够简单的东西来阻止大多数好奇的用户,因为你可能无法对抗专门的黑客.
归档时间: |
|
查看次数: |
13921 次 |
最近记录: |