TITLE:Flash SWF バイナリ

* ファイルフォーマット [#z51cf16c]
公式の仕様書を読むとライセンス的に穢れるので注意。らしい。
- http://sswf.sourceforge.net/SWFalexref.html ([http://awm.jp/~yoya/cache/sswf.sourceforge.net/SWFalexref.html cache])
- Flash フォーマットの秘密
-- http://languagegame.org:8888/propella/42
- SWF フォーマットメモ
--  http://nikq.nothing.sh/backlog/junkbox/flash.txt
** 読むの禁止 [#n716cefc]
- flash_fileformat_specification.pdf

** 自作ツール [#tfb243ce]
- http://awm.jp/~yoya/prog/php/flash/
- SWF Editor php extension ([[swfed]])

* SWF フォーマットのメモ [#hbc24eff]

- 基本的に LittleEndian
- 後は bit 処理が幾つか
- タグは TLC(type,length,contents) 構造

** header [#bcabb473]

 +-----------------+--------------+
 |FWS or CWS|  \0  |  file_length |
 +----------+------+--------------+
 <-3 bytes-><1 byte><-- 4 bytes -->

*** offset=0 FWS\0 or CWS\0 の 3文字+ \0 terminate string [#ibd122ad]
- CWS の時は、ファイルサイズフィールド以降が zlib 圧縮される

*** offset=4 file_length [#g68789a2]
- LittleEndian 4 byte

** header_movie [#qd7728b6]

 +-------+-----------+-----------+-----------+-----------+---
 | align |   x_min   |   x_max   |   y_min   |   y_max   | ..
 +-------+-----------+-----------+-----------+-----------+---
 <-5 bits><align bits><align bits><align bits><align bits>

  ---+---------------------------------+------------------+
  .. | frame_rate_dec | frame_rate_int | frame_rate_count |
  ---+---------------------------------+------------------+
      <-- 1 byte -->   <--  1 byte --> <--  2 bytes  -->

*** offset=8 [#r84af899]
- 先頭 5 bits は、この後に続く~のフィールドサイズ

* 参考 [#ref]

- swfファイルを抽出・解析・flaにデコンパイルするアプリケーション集
--  http://coliss.com/articles/software/853.html

* 関連ページ [#ref]

- SWF Editor for PHP ([[swfed]])

Reload   Diff   Front page List of pages Search Recent changes Backup Referer   Help   RSS of recent changes