IO_SWF replaceActionString

ActionScript2 で記述してコンパイルしたバイナリコードは、
SWF ファイルの主に DoAction タグに格納されます。
その DoAction 内の (ActionScript2 で URL指定や代入処理で渡したであろう)
文字列を入れ替える処理を実装しました。

具体的には ActionScript で a = 'hoge'; 等とした場合の hoge
getURL 関数に渡した URL文字列等を SWF のレベルで置換できます。

FlashLite のゲームでパラメータを埋めたり、終了後のページ遷移先を動的に変更できる。はずです。(原理的にはいけるはず)

導入方法

  • IO_Bit,IO_SWF が入ってない環境
pear install openpear/IO_SWF openpear/IO_Bit
  • 既に入っている場合 (install を実行しても古いままなので)
pear upgrade openpear/IO_Bit
pear upgrade openpear/IO_SWF

実験

php /usr/share/php/sample/swfreplaceactionstring.php bloxorz.
swf Sound YoyaSoundYoya > t.swf
php /usr/share/php/sample/swfdump.php -f t.swf | grep Yoya
        [1] YoyaSoundYoya

実装

DoAction タグの parse/build/dump 処理

文字列入れ替え処理

使い方は、swfreplaceactionstring.php を見て下さい。

某氏へ

試しに実装しましたが、URL 書き換えってこんなんで良いですか。