疯狂科学家Javascript混淆想法

时间:2010-10-29 15:08:19

标签: javascript actionscript-3

所以我确定这可能至少是疯狂的,但我只是在思考AS3 / JS的互动,这让我感到疑惑 - 有没有人确切地知道如何通过AS3调用JS是无效的?例如,如果您执行以下操作:

import flash.external.ExternalInterface;
ExternalInterface.call("(function() { /* here's a block of code */ })");

这些电话最后是否需要eval(),还是能够原生传递?

无论如何:让我们假设一秒钟并且说你是一个异教徒,并且实际上在公用事业SWF(1x1,屏幕外,无论如何)中存储了大量的Javascript,并且有基本的DOM事件绑定将这些事件交给AS3当它们触发时,因此使用ExternalInterface来立即执行JS - 因此,您加载的Javascript中唯一可以与Flash进行通信的部分。一个天真的人甚至可能会说“你可以将大量的JS文件压缩成一个加载的SWF文件,将它们分成不同的MC或其他任何东西!”,但实际上,这不是重点,在页面已经过后,这对我们没有帮助。加载。

我已经使用AS3及其Socket类来代替XHR轮询(等),所以到目前为止我对AS3 / JS交互并没有感到失望。 AFAIK AS3在Flash VM中执行,这意味着它自动效率低于Javascript,对吗?有人可以说明效率是多么可怕吗?

1 个答案:

答案 0 :(得分:1)

在Flash影片中解构AS3代码并非不可能。虽然它会阻碍不经意的观察者,但如果有技能的人想要获得你的脚本,他们就可以。你只会在他们的路径中抛出一个障碍,而不是一个无法通行的路障,而且可能比标准JS混淆器生成的代码更难破解。

至于性能,Flash执行与浏览器托管的Javascript解释器相比较。有关一组比较,请参阅http://jacksondunstan.com/articles/232。对于纯粹的代码执行*,它接近最快的JS。

N.B。 - 对于图形用户界面任务,到目前为止,没有其他任何东西(即HTML 5)已经接近。这可能会随着IE9的新JS引擎及其硬件加速而改变,但目前尚不清楚Adobe是否能够在某些时候采用相同的东西。