2013-10-11 111 views
6

我目前正在C和Lua中開發一款遊戲。因爲我計劃在完成遊戲後出售遊戲,所以我想保持源代碼關閉。所以我的問題是,是否有一種方法可以隱藏,或者以某種方式從C訪問我的Lua代碼,而用戶無法查看。現在,我的可執行文件被放在與我的Lua代碼相同的位置,因此可以被訪問。在C應用程序中隱藏Lua源代碼

感謝您閱讀本文,並感謝您的幫助。如果我太模糊,請向我諮詢更多細節。

+0

您可以加密Lua源代碼,並假設沒有人嘗試從您的可執行文件中提取密鑰。 – Dai

+0

他們獲得加密密鑰有多困難,還有其他選擇嗎? – hyrumcoop

+3

您可以編譯您的lua腳本並將字節碼存儲到C數組中,並提供一些基本的源隱私。除此之外,你可以做的事情不多 - 任何堅定的攻擊者總是可以將二進制逆向工程轉換回某種形式的更高層​​次的表示。無論您用什麼語言編程您的遊戲,這都是事實。 – greatwolf

回答

5

我認爲正確的答案是,你不能。你只能讓黑客更難過。已經破解了比將代碼編譯成字節碼更好的保護方案。如果你的遊戲不流行,反正無所謂。先寫遊戲,然後擔心隱藏你的代碼。

+4

是的,這是正確的,你不能。我所知道的最好的混淆方法是這裏描述的方法:http://stackoverflow.com/a/8500005/661171 – cib

+0

謝謝。我同意我應該把重點放在最重要的事情上,並且稍後再考慮更小的細節。 – hyrumcoop

5

的Lua手冊says

[Lua中]組塊也可以被編譯爲二進制形式;有關詳細信息,請參閱程序luac。源代碼和編譯形式的程序是可以互換的; Lua會自動檢測文件類型並相應地執行操作。

這意味着您可以使用luac(Lua編譯)編譯你的Lua代碼以二進制形式,這將不會是容易閱讀,但仍然可以拆卸以找出它做什麼(這是可以做到即使C如果你足夠確定)。