Apache flex 当swf嵌入时会发生什么情况?

Apache flex 当swf嵌入时会发生什么情况?,apache-flex,flash,Apache Flex,Flash,我有一些嵌入SWF的AS3代码(它本身包含AS3): 看看flash反编译器(Trillix、So Think等)是如何看待这一点的,他们只是展示了: //MyClass_MyAs3LibSwfClass package mypackage { import mx.core.*; public class MyClass_MyAs3LibSwfClass extends mx.core.ByteArrayAsset { public function

我有一些嵌入SWF的AS3代码(它本身包含AS3):

看看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;
        }
    }
}
他们似乎也没有提供任何方法来提取ByteArray

当然,混淆AS3代码不会那么容易。但主权财富基金去了哪里?用十六进制编辑器查看它,我甚至找不到嵌入式SWF的起始头(“CWS”)

我的问题是:SWF作为ByteArray嵌入时会发生什么?还有反编译器支持提取嵌入式ByteArray吗


注意:我嵌入这个SWF不是为了混淆(还有其他原因)。我只是对嵌入的反编译分支感兴趣。

如果我没记错的话,在反编译第一个swf时应该有一个到资产的链接。资产中应该有一个大的二进制文件,这是您的第二个swf


回家后我必须试试这个。

嵌入的数据存储在SWF文件的
DefineBinaryData
标记中。然后,
SymbolClass
标记将数据与其定义绑定。()

如果要适当地解压缩SWF主体(压缩的SWF从CWS开始,在前8个字节后使用zlib压缩),您将在原始数据中看到CWS或FWS头


所有这些都与反编译器如何处理数据无关。

我发现了一篇文章,其中详细介绍了嵌入式SWF。似乎我在十六进制编辑器中找不到嵌入的SWF,因为父SWF是压缩的。(CWS头表示它的压缩文件。)

我很确定SWF是一个zip文件。如果您将SWF上的扩展和嵌入的SWF更改为zip;然后把它解压缩你发现了什么?我希望所有嵌入的资产都在那里;不,SWC是一个zip文件。SWF是它自己的二进制格式。我猜他们很相似
//MyClass_MyAs3LibSwfClass
package mypackage 
{
    import mx.core.*;

    public class MyClass_MyAs3LibSwfClass extends mx.core.ByteArrayAsset
    {
        public function MyClass_MyAs3LibSwfClass()
        {
            super();
            return;
        }
    }
}