加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flex – swf嵌入时会发生什么?

发布时间:2020-12-15 01:49:33 所属栏目:百科 来源:网络整理
导读:我有一些嵌入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
我有一些嵌入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);
...

在查看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去了哪里?使用十六进制编辑器查看它,我甚至找不到嵌入式SWF的起始标题(“CWS”).

我的问题是:当SWF作为ByteArray嵌入时,会发生什么?并且任何反编译器都支持提取嵌入的ByteArray吗?

注意:我没有嵌入此SWF以进行混淆(还有其他原因).我只对嵌入的反编译分支感兴趣.

解决方法

嵌入数据存储在SWF文件的DefineBinaryData标记中.然后,SymbolClass标记将数据绑定到其定义. ( SWF file format specification)

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

这些都没有说明反编译器如何处理数据.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读