SWFファイルを解析するの巻

アバター
せんちゃ
記事: 50
登録日時: 14年前
住所: 江別市東野幌町
連絡を取る:

SWFファイルを解析するの巻

投稿記事 by せんちゃ » 11年前

昨日はPSDファイルの読み込みをしていたので、今度はSWFファイルの読み込みを。
これはこれでいろいろ資料があるようなので参考にしたりします。

http://labs.gree.jp/blog/2010/08/631/
http://wiki.libspark.org/wiki/SWF/Format
http://d.hatena.ne.jp/FLIP_FLOP/20080929/1222685888

このあたりを参考に
今日一日かかってしまいましたがなんとかヘッダーの解析には成功。
PSDとは比較にならないくらい難しいです。
普通にバイトデータを読み込むだけならマシなのですが、どうもSWFファイルにはビットが可変するデータ型があるようでして、
これに合わせてビットレベルの操作ができなければいけません。

RECT型というやつがそれにあたり、
Nbits
Xmin
Xmax
Ymin
Ymax
という順番でデータが続くとのこと。

Nbitsは5bitでここにはデータサイズが入り、
Nbitsサイズ分のフィールドが下に4つ続き、
アライメントして次のバイトから次のパラメータが始まる、というような仕様になっているらしいが
実際のところ何バイトアライメントでやっているのか把握できてないのでちょっと怖い。

バイナリリーダーだけではバイト配列は取れますがビット操作はできない為、
とりあえずビットを2進数文字列に変換してからそれをビット指定で整数に変換する、というような仕組みを作ることに

明日からはまた仕事なので終電コースなら続きは難しいけどとりあえずヘッダーは取れたので
引き続きタグを取れるようにしてみたいところ・・・

可変ビットというのは初めてやるので若干戸惑いましたが、その辺はおそらくアプリ開発では使わないので
とりあえずはツール上でそれっぽくできればいいかなぁ・・・

ではでは

ISLe
記事: 2650
登録日時: 14年前

RE: SWFファイルを解析するの巻

投稿記事 by ISLe » 11年前

せんちゃ さんが書きました:可変ビットというのは初めてやるので若干戸惑いましたが、その辺はおそらくアプリ開発では使わないので
とりあえずはツール上でそれっぽくできればいいかなぁ・・・
ガラケーのパズルゲームの問題データとかでよく使いましたけどね。
最後に編集したユーザー ISLe on 2013年12月08日(日) 23:46 [ 編集 2 回目 ]

アバター
せんちゃ
記事: 50
登録日時: 14年前
住所: 江別市東野幌町
連絡を取る:

Re: SWFファイルを解析するの巻

投稿記事 by せんちゃ » 11年前

ガラケーで使われるということはやっぱり容量節約の為、ということですよね。
ビットにランダムアクセスするとなると必要ないビットを消すためにビットシフトや~&演算とかを沢山使う感じなのでしょうか。

追記
落ち着いて考えてみると必要ビット分だけビットシフトしてORで格納していけばなんとかなるかなぁと思い
試してみたら普通にできたようです。
最後に編集したユーザー せんちゃ on 2013年12月09日(月) 11:55 [ 編集 1 回目 ]