swfの解析備考録
swfとは
スウィッフと読むそうです、そのまま「エスダブリューエフ」と呼んでました。
FlashPlayerで再生できるファイルです、「おもしろフラッシュ総合サイト」 とかで通じる年代の人には馴染みが深いかと思います。
swfを作成するソフトは沢山あるのですが、昔からあり、as2(action script 2.0)のswfを吐き出すソフトとしては
ParaFla(http://parafla.coaworks.jp/)
があります。 今回はそのサンプルを使って解析が正しく行えるかを試しました。
ActionScriptとは
Flashで画像や音声の制御を行うプログラミング言語です。
今回の解析で主に取り扱うものです。
以下がわかりやすいです。
http://www40.atwiki.jp/spellbound/pages/381.html
swf解析に使った資料、ツールまとめ
このサイトを見れば大体わかります
- ActionScript入門Wiki
- http://www40.atwiki.jp/spellbound/
- IDEの選び方などが載っており、わかりやすい。
- Flash SWF Spec
- http://hkpr.info/flash/swf/index.php
- 知りたい内容は大体載ってると思います
- SWFバイナリ編集のススメ第0回 (解析編) GREE Engineers' Blog
- http://labs.gree.jp/blog/2012/11/6308/
- シリーズで第6回 + 番外編(zlib)があります、画像もありとてもわかりやすいです
- PHPでのSWF編集とその応用
- How to read SWF
上記4つは作者、著者が同じ方のように見えます
- ActionScriptを使わないFlash勉強会 #1(前日版)
- Hacking SWF – PlaceObject and the Ratio Field(英語)
- http://wahlers.com.br/claus/blog/hacking-swf-2-placeobject-and-ratio/
- placeObject2とshowFrameの関係がわかりやすいです
- Hacking SWF(英語)
使ったツール
- mtasc
- http://www.mtasc.org/
- as2がコンパイル出来る軽量のexe(名前忘れた)
- sothink flashdecompiler
- http://www.sothink.com/product/flashdecompiler/
- 有料で、非常に使いやすいデコンパイラです 無料トライアル版の時だけ使いました 欲しいけど高い。
- JPEXS Free Flash Decompiler
- http://www.free-decompiler.com/flash/
- 無償のデコンパイラの中では最も精度がよく使いやすかったです、ちょっとバグったりします。
デコンパイル、タグの解析に使えそうなソース
- SwfNet(C#) https://github.com/debreuil/Swf2XNA
- 普段C#を使っているのでかなり助かりました、コンパイルできるようにするのが大変なんですが、その辺は http://neue.cc/2013/01/10_393.html(C#でFlash Liteなswfをバイナリ編集して置換する)を参照して下さい。
- このコードでは上手に動かない所があったので、そこを改造して使っています New BSD License (BSD)(http://swf.codeplex.com/license) なので、改造したのをupするかもしれません
- SWF_IO(php,C)
- 上記の資料で出てきてるので、そちらを参照
- dumpswf.plx(perl)
- SWF-File-0.20 というものがあるそうです。