我有一些嵌入SWF的AS3代码(它本身包含AS3):
[Embed(source="/assets/myas3libswf.swf", mimeType="application/octet-stream")]
protected static const MyAs3LibSwfClass : Class;
...
var loader:Loader= new Loader();
loader.loadBytes(new MySwfClass() as ByteArray);
...
Run Code Online (Sandbox Code Playgroud)
在查看Flash反编译器(Trillix,So-Think等)如何看待这一点时,他们只是展示:
//MyClass_MyAs3LibSwfClass
package mypackage
{
import mx.core.*;
public class MyClass_MyAs3LibSwfClass extends mx.core.ByteArrayAsset
{
public function MyClass_MyAs3LibSwfClass()
{
super();
return;
}
}
}
Run Code Online (Sandbox Code Playgroud)
他们似乎也没有提供任何方法来提取ByteArray.
当然,混淆AS3代码并不容易.但SWF去了哪里?使用十六进制编辑器查看它,我甚至找不到嵌入式SWF的起始标题("CWS").
我的问题是:当SWF作为ByteArray嵌入时,会发生什么?并且任何反编译器都支持提取嵌入的ByteArray吗?
注意:我没有嵌入此SWF以进行混淆(还有其他原因).我只对嵌入的反编译分支感兴趣.