gpt4 book ai didi

c# - 来自 C# - 有没有办法确定 swf 是 AVM1 还是 AVM2?

转载 作者:行者123 更新时间:2023-11-30 14:18:37 25 4
gpt4 key购买 nike

  • ActionScript 3.0 提供了一种方法来确定 swf 是否适用于:1) AVM2(或更早版本);或 2) AVM3。 [ link1 , link2 ]

我的问题:

  • 在 C# 中,有没有办法确定 swf 是用于 AVM1 还是 AVM2?

最佳答案

当然。可以在此处找到 .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 之后的所有内容。 swf 使用 zlib 压缩并且是 Little Endian。

关于c# - 来自 C# - 有没有办法确定 swf 是 AVM1 还是 AVM2?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4158377/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com