我已经在Flex中编写了(大部分)应用程序,我担心保护源代码。 我启动了一个Trillix swf反编译器的演示,并打开了安装到我的Program Files目录的swf文件。 我看到我写的所有动作包都在那里。 即使有大量代码,我也不太关心软件包,因为如果没有mxml文件,它似乎仍然无法使用。 我认为它们会被转换为动作脚本,或者至少我希望如此。 但是,我仍然想探讨混淆。

有没有人对Flash / Actionscript 3 / Flex混淆器有任何经验? 你能推荐一款好产品吗?

===============>>#1 票数:20

maclema建议的过程不会真正阻止任何攻击者获取源 - “包装器应用程序”将需要未加密,因此攻击者将能够发现您使用AES(或任何其他算法)并且他将获得以类似的方式解密密钥(因为它需要在某处的明文中)。 一旦他有了这个,他将能够轻松解密您的SWF文件。

唯一可靠的解决方案(好吧......)是某种混淆器 - 我们使用最新版本适用于Flex的Amayeta - 请参阅http://www.amayeta.com/software/swfencrypt/

===============>>#2 票数:13 已采纳

这就是我要做的。

  • 将您的应用程序编译为SWF文件。 然后使用AES加密SWF。

  • 创建一个“包装器”应用程序,使用URLLoader将加密的SWF加载到ByteArray中

  • 使用as3crypto库在运行时解密swf。

  • 解密后,使用Loader.loadBytes将解密的swf加载到包装器应用程序中。

这将使得获取代码变得更加困难。 并非不可能,但更难。

对于AIR应用程序,您可以在将应用程序交付给最终用户时对SWF进行加密。 然后,您可以提供包含用于解密SWF的密钥的注册密钥。

此外,这是一个指向AS3混淆器的链接。 我不确定它的效果如何。 http://www.ambiera.com/irrfuscator/index.html

===============>>#3 票数:3

嗯,在我看来,最简单,最安全的解决方案是maclema和Borek的混合答案:

如果您从一开始就没有将它包含在您的进程中并且您的应用程序非常大,那么混淆代码可能是一个很大的麻烦:如果您使用远程包(并且没有向混淆器声明这种情况),很可能混淆会使您的应用程序损坏如果您习惯于对象或动态类中的许多unTyped变量....

所以:如果你在你的大型应用程序上使用maclema的解决方案并在你的包装器上使用模糊处理(这是一个很容易混淆的小应用程序),那么你的代码将是最安全的,而最小的是。 只有一个非常愤怒的海盗会花时间对混淆进行逆向工程,然后解密包....如果有人想要你的应用程序代码那么糟糕,那就是CIA相关或你已经非常富有(或两者兼而有之)

谢谢大家的答案

===============>>#4 票数:0

我最近发布了一款使用Flash的iOS和Android游戏。 我环顾互联网寻找一个很好的免费程序,以保护我的SWF中的源代码,找不到任何东西,所以我写了一个。 它仍处于开发阶段,“使用风险自负”,但它对我有用。

它发布在github上。 看看它,让我知道你的想法。

https://github.com/Teesquared/flasturbate

我上传了一个Windows二进制文件但我建议您按照说明自行构建它,如果您想尝试一下。

此混淆器直接在SWF文件上工作。 它目前只重命名符号,但它建立在一个可以支持将来改变字节码的框架上。

  ask by Shawn translate from so

未解决问题?本站智能推荐: