swfファイルからflaファイルに変換・抽出できるデコンパイラを試してみた。
Flashを扱っていると、swfファイルからActionScriptやflaファイルを抽出できる、「デコンパイラ」の存在を知ると思います。
デコンパイラとは、コンパイルされたswfファイルをflaファイルに変換したり、swfファイル内に含まれる素材を抽出することが出来るツールのことで、大事なflaファイルを紛失してしまったときの蘇生手段として活躍します。
ですが実際にはその使われ方よりも、参考にしたいFlashの中身はどうなっているのかを純粋に解析したいときに良く使われているんじゃないでしょうか。
今回は自分が使ったことのあるデコンパイラを二つご紹介します。
Flare
【特徴】
- swfファイルからActionScriptを抽出してひとつのテキストファイルに書き出せるソフト。
- フリーウェア。
- Win/MacOSX/Linuxに対応。コマンドプロンプトからも使える。
- 画像や音データは抽出できない。
- AS3には非対応。
【使い方】
- exploler上のswfファイルを右クリックして[Decompile]を選ぶとすべてのスクリプトがひとつのテキストファイルに書き出されます。(Windowsの場合) 拡張子が「.flr」とついてありますが、一般的なテキストエディタで開くことができます。
【使用後の感想】
- Tweener、FuseKitなどのフレームワークを使用していた場合、それらのasファイルの中身も一緒に書き出されて果てしなく長いテキストファイルが出来上がります。注意!
- タイムラインのフレームに直書きされたスタイルのflaファイルなら、書かれているスクリプトに関してはそっくりそのままテキストファイルに書き出されました。とても硬派な印象です。
- ただ、どの部分に書かれたスクリプトなのかを判別することが困難。イコール、情報が断片的なので、Flashの解析をこのソフト一本で補完するのは無理だと思います。。
Flash Decompiler Trillix
【特徴】
- swfファイルからflaファイルに変換して、Flash環境で編集できます。
- ActionScriptをはじめ、テキストやモーション、シェイプなどのアニメーション、音データを抽出可能。
- シェアウェア。(機能が制限された体験版は15日有効)
- Mac版もあります。(Flash Decompiler Trillix for Mac)
- 日本語版もあります(Win/Mac)※英語版とは最新のバージョンが異なるようです
- AS2.0に完全対応。AS3.0(FlashCS3、FlashPlayer9)に一部対応。
【使い方】
- アプリケーションを起動後、ウィンドウ内にswfファイルをドラッグ。選択部分の書き出しや一括書き出しなど、細かく設定できます。詳しい使い方はここには書ききれません。いやほんとに。
【使用後の感想】
- ひとことで言うと、さすがシェアウェアです。現状でAS3、FlashCS3に対応しているデコンパイラはこのソフトのみではないでしょうか。
- 付属のSave Flash Movieというエクステンション(要はFireFoxのアドオン)をインストールしておくと、ブラウザで表示したページ内のswfファイルを自動で探してきてDLもワンクリックで出来るようになります。(同じような機能をもったSothink SWF Catcherというものもあります。)
- Save Flash Movie上でDecompileするソフトウェアを予め設定しておくと、ローカルにswfファイルをDLすることなくいきなりデコンパイルすることが可能。
実際に使用したことがあるのは今のところ上の二つのみですが、他にも多くのデコンパイラ(抽出ソフト)があるようです。
Motion Decompiler - 高性能Flash解析ソフト
SWFTOOLS - jpeg,png,フォントデータ、シェイプ、音データなどを抽出できる
窓の杜 - HugFlash - Flashファイルに含まれる画像・音声・動画を抽出