我有許多Lua腳本(用於多人模式Multi Theft Auto),它們被編譯,其原因很多,包括防盜。實際上,這只是一種盜竊威懾,因爲Luadec(http://luadec51.luaforge.net/)可以輕鬆地對腳本進行反編譯。有沒有人有關於如何使我的腳本不可反編譯的任何提示?我該如何讓Lua腳本不可反編譯?
6
A
回答
7
加密;這真的是它工作的唯一方式。當然,由於你的程序必須解密它們,所以它們可能只是從內存中抓取解密的數據。
所以不,沒有什麼可以做的。 任何方法將在某種程度上「只是一種防盜威懾」。即使編譯到實際彙編也只是一種威懾,因爲這可以反編譯成與原始源代碼完全不同的東西。
問題是你想給用戶多少麻煩。加密可能會給你帶來最大的壓力。這將迫使他們必須通過可執行文件來弄清楚如何從內存中抽出數據。大多數臨時用戶不會希望這樣做。
2
如果你想變得非常認真,你可以更改lua虛擬機生成和使用的操作碼,那麼現成的軟件無法反編譯它。雖然這可能會給你帶來更多的問題,但你不得不支持你自己的lua版本,而你可能不會使用luajit這樣的東西。
要進行反編譯,他們必須找出您想要翻譯的操作碼的映射。這可能不會太難,但我可能不會。
[更新]
看着它可能是相當容易的來源,有兩個文件lopcode.c和lopcode.h也許如果你只需要改變這些操作碼你會做的順序。如果你最終這樣做並且它工作與否,請發佈。
0
我不認爲這是可能的。野獸的本質(一個在非常小的虛擬機上工作的非常小的語言)基本上禁止它。
您希望得到的最好結果是反編譯的代碼儘可能難以理解,對於人類來說。
1
Multi Theft Auto現在支持加密腳本。您可以在線編譯它們:http://luac.mtasa.com/或下載獨立編譯器。
相關問題
- 1. 是否可以反編譯NSIS腳本?
- 2. 編譯腳本文件Lua或Python
- 3. 編譯lua腳本到dll中?
- 4. 如何反混淆Lua腳本?
- 5. 將lua腳本編譯爲獨立的可執行文件
- 6. 如何用lua編譯nginx?
- 7. 如何編譯julia腳本?
- 8. PHP腳本如何編譯?
- 9. 我該如何在windows中運行redis lua腳本
- 10. 如何理解我的vb反編譯器已經反編譯
- 11. 嵌入Lua:如何以編程方式將腳本保存到文件夾,如何編譯腳本?
- 12. Lua腳本編程和C#
- 13. Android Studio - 我們應該如何讓應用更快地編譯?
- 14. 編譯腳本
- 15. 如何運行.lua腳本?
- 16. 如何終止Lua腳本?
- 17. 如何運行Lua腳本?
- 18. 當你應該使用lua腳本,並且不應該使用
- 19. 如何讓我的java代碼編譯?
- 20. 我可以讓PyInstaller優化編譯嗎?
- 21. 編譯器自動機,我該如何讓這個圖表不會相交?
- 22. 如何編譯多個Python腳本到一個Python腳本編譯
- 23. 反應工具的JSX編譯不產生JS腳本
- 24. 我該如何編譯這個文件
- 25. 如何防止這個Lua腳本被反覆發送?
- 26. 你可以使用Lua腳本來讓Redis拋出事件嗎?
- 27. 「編譯」 Python腳本
- 28. 如何使用ant編譯NSIS腳本?
- 29. 如何編譯Oracle SQL腳本?
- 30. 如何編譯APR測試腳本
通過更改虛擬機指令中操作數的順序,也可以使它變得更加難一些。 – lhf
請注意,如果您有權訪問像'luac'提供的字節碼列表,則此方法可能無法正常工作,因爲您可以對訂單進行逆向工程。但這將是一種痛苦,可能會阻止大多數人。或者是對動機黑客的挑戰。 :-) – lhf
事實上,沒有任何東西能夠阻止專用黑客進行十六進制轉儲。如果你按照Nicol的建議在加密中加入這個加密算法,並首先通過lua混淆器運行它,那麼只剩下真正的專用加密算法。 – daven11