SWFのhexdumpツール

16進ダンプからtagの区切りを探すのが面倒だったので、
何となく作ってみました。

ビットストリームせずにベタに作ったので処理速い&
機能追加しやすいように作った(つもり)

% php YSwf.php ~/flash/ffxi2.swf
head_length=21
            0  1  2  3  4  5  6  7   8  9  a  b  c  d  e  f  0123456789abcdef
0x00000000 46 57 53 04 ae 5b 05 00 78 00 05 00 00 00 0e ec  FWS  [  x
0x00000010 00 4c 00 14 00                                    L

tag=777 length=5
            0  1  2  3  4  5  6  7   8  9  a  b  c  d  e  f  0123456789abcdef
0x00000010                43 c2 72 66 78                         C rfx

tag=9(SetBackgroundColor) length=5
            0  1  2  3  4  5  6  7   8  9  a  b  c  d  e  f  0123456789abcdef
0x00000010                                43 02 00 00 00               C

tag=21(DefineBitsJPEG2) length=27125 id=1 checksum=308096141
            0  1  2  3  4  5  6  7   8  9  a  b  c  d  e  f  0123456789abcdef
0x00000010                                               7f
0x00000020 05 ef 69 00 00 01 00 ff d8 ff db 00 43 00 0d 09    i         C
0x00000030 0a 0b 0a 08 0d 0b 0a 0b 0e 0e 0d 0f 13 20 15 13
0x00000040 12 12 13 27 1c 1e 17 20 2e 29 31 30 2e 29 2d 2c     '    .)10.)-,
0x00000050 33 3a 4a 3e 33 36 46 37 2c 2d 40 57 41 46 4c 4e  3:J>36F7,-@WAFLN
0x00000060 52 53 52 32 3e 5a 61 5a 50 60 4a 51 52 4f ff db  RSR2>ZaZP`JQRO

制限事項

携帯SWFのコストを最適化するべく、SWF version 4 までしか対応しません。
例えば、CWS や AVM2 は対応しません。(CWS の対応の仕方は知ってるけど)