From C # - Is there a way to determine if swf is AVM1 or AVM2?

  • ActionScript 3.0 provides a way to determine if swf is for: 1) AVM2 (or earlier); or 2) AVM3. [ link1 , link2 ]

My question is:

  • From C # , is there a way to determine if swf is for AVM1 or AVM2?
+3
source share
2 answers

Of course. The .swf specification can be found here: http://www.adobe.com/content/dam/Adobe/en/devnet/swf/pdf/swf_file_format_spec_v10.pdf

FileAttributes, . 60, ActionScript3 UB [1]. , AVM2, AVM1. .swfs 9 , 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. 5- .

, FileLength, ( 0 == 0x43). SWF zlib Endian.

+6

ActionScript 2 ActionScript 3. AVM1 ActionScript 1 2. , ActionScript ACTIONSCRIPT2 AVM1, ACTIONSCRIPT3 AVM2.

:

, #. , SWF- #; Flash Player , . , #. , Flash Player , , ( , , ).

Flash 'ExternalInterface ( , # Flash, , JavaScript -) "" . , , , , SWF , .

, , , . - SWF-, , . AVM .

+1

Source: https://habr.com/ru/post/1774381/


All Articles