2011-06-01 179 views
3

我会将我的业务代码分成脚本语言。它将是Lua或Python。 我的问题是用脚本文件编写的业务代码可以被他人查看。 由于脚本文件将不会编译为打开。任何人都可以看到它。编译脚本文件Lua或Python

我该如何隐藏它? 我想如果我使用Python,它会被编译(.pyo),但Lua看起来更适合我。

回答

1

您将无法轻松隐藏。您可以进行加密和解密。问题是,人们将能够看到你是进程内存,并看到代码清晰的一天。如果您想阻止人们更改lua,您可以创建一个散列,在每次运行时检查文本文件。

1

(对于Lua)

取决于它应该是多么安全。为了避免愚蠢的编辑,您可以更改扩展名,并将路径配置为无论如何识别它。

为了避免知道如何更改扩展名的人,您可以发送使用luac编译的文件。为了破译你必须付出相当大的努力。

但是要真正保存,我猜唯一的方法是对代码进行加密/签名,也许修改核心,使其只能运行签名检查为确定或可以解密的文件。

+0

如何对脚本代码进行加密和签名? – suyuti 2011-06-01 10:24:34

+0

我不知道。你将不得不寻找现有的库,或者自己编写代码。 – jpjacobs 2011-06-01 16:02:33

4

您可以luac编译Lua脚本:

luac -s -o yourscript.luc yourscript.lua 

使用标志-s也将删除调试信息,从而也稍微小了一点。

+3

当然有反编译器。参见例如[LuaDec51](http://luadec51.luaforge.net/)。 – lhf 2011-06-01 11:35:18

+1

请注意,更常见的扩展名是'.luac',而不是'.luc' – 2011-06-04 13:20:16

+0

@亚历山大谢谢,出于方便,我一直使用'.luc'......好吧:D。 – hiobs 2011-06-06 14:15:32

0

你可以在可执行文件中嵌入lua代码。下面是如何在C中嵌入lua的链接:http://heavycoder.com/tutorials/lua_embed.php

+0

链接的教程展示了如何从C内部执行Lua代码,但Lua代码仍然存储在单独的文件中,并且可用于读取/反编译/编辑,原始海报试图避免。 – 2011-06-02 05:26:01

+0

对不起,我没有阅读我首先链接的页面的所有内容。但是,您仍然可以将lua代码嵌入到可执行文件中,以“隐藏”Lua代码的方式。 – Alexander 2011-06-02 12:24:15