2011-06-01 216 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