1

有沒有可靠的方法來防止我的actionscript代碼(as2或as3)被複制(例如,如果其中有一些IP)? 我知道有些工具可以反編譯Flash代碼,所以很容易進行反向工程,並且我還看到一些聲稱能夠混淆actionscript代碼的工具,它不是可以竊取的,但我想知道如何他們是可靠的... 你知道嗎?謝謝!如何防止ActionScript代碼反編譯

回答

2

根據定義,它是不可能的以防止它。

原因很簡單,代碼需要在客戶端上運行,所以客戶端需要能夠讀取它。

你所能做的最好的事情就是做出這麼難(時間要求)來做到這一點,這不是一個好處。閃存有一個內置的功能來保護用密碼進行反編譯。我不確定它是如何工作的,我猜想某種形式的加密。

您可以嘗試並檢測有意義的數據並在運行時加入它,或者對其進行加密並從服務器獲取解密密鑰。

但最終沒有什麼可以真正做到的。除非你不想讓用戶輸入加密密鑰(密碼或文件)。 在Flash中沒有編譯加密,但有一些免費的圖書館,如crypto lib http://code.google.com/p/as3crypto/

2

我發現沒有可靠和可持續的方式來混淆代碼。如果有混淆代碼的方式,我敢打賭:

  • 它會影響您的代碼的性能
  • 有人做/找到一個反編譯爲混淆之前將只是一個時間問題方法

我不會考慮依賴您的客戶端代碼的安全性的良好做法。即使代碼無法反編譯,swf也會在客戶端運行,並通過用戶有權訪問的網絡連接與Internet進行通信。數據包可以被嗅探,並且可以輕鬆分析所有正在傳輸的數據。

我想你應該找到一種開發安全應用程序的方法,即使考慮到客戶端知道你所做的一切。您應該嘗試使用服務器端約束並在使用它們之前過濾所有輸入。此外,從服務器端腳本請求所有敏感數據,而不是將其嵌入到AS代碼中可能是一個好的開始。