弹性/空气混淆
时间:2020-03-05 18:38:21 来源:igfitidea点击:
我已经用Flex编写了(大部分)应用程序,并且我担心要保护源代码。我启动了Trillix swf反编译器的演示,并打开了已安装到我的Program Files目录中的swf文件。我看到我编写的所有动作脚本包都在那里。即使有大量代码,我也不太关心这些软件包,因为如果没有mxml文件,它似乎仍然无法使用。我认为它们已转换为动作脚本,或者至少希望如此。但是,我仍然想探索混淆。
有没有人对Flash / ActionScript 3 / Flex混淆器有任何经验?你能推荐一个好的产品吗?
解决方案
回答
这就是我要做的。
- 将应用程序编译为SWF文件。然后使用AES加密SWF。
- 制作一个"包装"应用程序,该应用程序使用URLLoader将加密的SWF加载到ByteArray中
- 使用as3crypto库在运行时解密swf。
- 解密后,使用Loader.loadBytes将解密的swf加载到包装器应用程序中。
这将使获取代码变得更加困难。并非没有,但是更加困难。
对于AIR应用程序,可以在将应用程序交付给最终用户时使SWF保持加密状态。然后,我们可以提供一个包含用于解密SWF的密钥的注册密钥。
另外,这是指向AS3混淆器的链接。我不确定它的运作情况如何。
http://www.ambiera.com/irrfuscator/index.html
回答
Maclema建议的过程不会真正阻止任何攻击者获取源,因此需要对"包装器应用程序"进行解密,从而使攻击者能够发现我们使用的是AES(或者任何其他算法),并且可以解密键的方式类似(因为它必须在某处以明文形式显示)。一旦掌握了这一点,他将能够轻松地解密SWF文件。
唯一可靠的解决方案(好吧……)是某种我们使用Amayeta的混淆器,该混淆器在最新版本中适用于Flex,请参阅http://www.amayeta.com/software/swfencrypt/。