当前位置:  开发笔记 > 编程语言 > 正文

从C# - 有没有办法确定swf是AVM1还是AVM2?

如何解决《从C#-有没有办法确定swf是AVM1还是AVM2?》经验,为你挑选了1个好方法。

当然..swf规范可以在这里找到:http: //www.adobe.com/content/dam/Adobe/en/devnet/swf/pdf/swf_file_format_spec_v10.pdf

FileAttributes,第60页,ActionScript3 UB [1].如果设置此位则为AVM2,否则为AVM1.这仅适用于版本9及更高版本的.swfs,但版本8或更低版本保证为AVM1.

快速找到这一点:

// Bytes from start of file: Signature + Version + FileLength + FrameSize + FrameRate + FrameCount + FileAttributes Header 
3 + 1 + 4 + (ceil(((swf[8] >> 3) * 4 - 3) / 8) + 1) + 2 + 2 + 2

swf [8]是swf的第8个字节.读取下一个字节,它是第5位.

如果文件被压缩(字节0 == 0x43),您可能必须在FileLength之后解压缩所有内容.使用zlib压缩swf并使用Little Endian.



1> Joony..:

当然..swf规范可以在这里找到:http: //www.adobe.com/content/dam/Adobe/en/devnet/swf/pdf/swf_file_format_spec_v10.pdf

FileAttributes,第60页,ActionScript3 UB [1].如果设置此位则为AVM2,否则为AVM1.这仅适用于版本9及更高版本的.swfs,但版本8或更低版本保证为AVM1.

快速找到这一点:

// Bytes from start of file: Signature + Version + FileLength + FrameSize + FrameRate + FrameCount + FileAttributes Header 
3 + 1 + 4 + (ceil(((swf[8] >> 3) * 4 - 3) / 8) + 1) + 2 + 2 + 2

swf [8]是swf的第8个字节.读取下一个字节,它是第5位.

如果文件被压缩(字节0 == 0x43),您可能必须在FileLength之后解压缩所有内容.使用zlib压缩swf并使用Little Endian.

推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有