如何防止ActionScript代码反编译

问题描述:

有没有可靠的方法来防止我的actionscript代码(as2或as3)被复制(例如,如果其中有一些IP)? 我知道有些工具可以反编译Flash代码,所以很容易进行反向工程,并且我还看到一些声称能够混淆actionscript代码的工具,它不是可以窃取的,但我想知道如何他们是可靠的... 你知道吗?谢谢!如何防止ActionScript代码反编译

根据定义,它是不可能的以防止它。

原因很简单,代码需要在客户端上运行,所以客户端需要能够读取它。

你所能做的最好的事情就是做出这么难(时间要求)来做到这一点,这不是一个好处。闪存有一个内置的功能来保护用密码进行反编译。我不确定它是如何工作的,我猜想某种形式的加密。

您可以尝试并检测有意义的数据并在运行时加入它,或者对其进行加密并从服务器获取解密密钥。

但最终没有什么可以真正做到的。除非你不想让用户输入加密密钥(密码或文件)。 在Flash中没有编译加密,但有一些免费的图书馆,如crypto lib http://code.google.com/p/as3crypto/

我发现没有可靠和可持续的方式来混淆代码。如果有混淆代码的方式,我敢打赌:

  • 它会影响您的代码的性能
  • 有人做/找到一个反编译为混淆之前将只是一个时间问题方法

我不会考虑依赖您的客户端代码的安全性的良好做法。即使代码无法反编译,swf也会在客户端运行,并通过用户有权访问的网络连接与Internet进行通信。数据包可以被嗅探,并且可以轻松分析所有正在传输的数据。

我想你应该找到一种开发安全应用程序的方法,即使考虑到客户端知道你所做的一切。您应该尝试使用服务器端约束并在使用它们之前过滤所有输入。此外,从服务器端脚本请求所有敏感数据,而不是将其嵌入到AS代码中可能是一个好的开始。