酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

BREW Application Resource(BAR)のバイナリ解析

barと言えば、BREW Application Resourceの略なわけですが、皆さんご存知では無いですよね。そうだよね、BREWだもんね(´・ω・`)

実質XMLの brx ファイル からバイナリである bar ファイルを生成します。

BREW Resource Editorを使えば、bar に含まれる文字列やBMPのサムネイルを見る事が出来ます。しかし、圧縮画像のBCI(BREW Compressed Image)のサムネイルは、見る事が出来ません。

bar ファイルのフォーマットは一般向けには非公開らしいので、むしゃくしゃしてバイナリ解析した。後悔はしていない。

誰か世の中のBREWプログラマの為に、bar Viewerを作ってみませんか?

barファイルの内部構造

4byte BAR固有?
2byte (なんだろう?)
2byte ひょっとしたらリソース情報チェーン数(?)
4byte (なんだろう?)
4byte (なんだろう?)
4byte 先頭からリソース情報終わりまでのサイズ(?)

4byte リソース数
4byte リソース要素開始バイト
4byte リソース要素全サイズ
—————–(ここからは可変部分)
2byte リソース情サイズ
2byte リソース番号

2byte リソース数が2個以上の場合、連続するリソース数
リソース数が1個の場合は、0固定
2byte リソース数が2個以上の場合、リソース情報チェーンの終端フラグ
リソース数が1個の場合は、0固定
—————–(ここまでは可変部分)
4byte ファイルヘッダサイズ

—————–(ここからは可変部分)
4byte (なんだろう?) リソース要素が複数ある場合差し込まれる
—————–(ここまでは可変部分)
4byte ファイルサイズ 

bar ファイルに詳しい方、「ここの4byteの意味が違うよ」とかあれば教えて頂きたいです。

BREW Application Resource(BAR)の中身をぶっこ抜いてみた

バイナリ解析した結果から、BCIファイルをぶっこ抜く(ネラトラン風に)ツールを作ってみた。こんな事をやってるのはきっと僕位なものだと思う。……だって普通は素材の画像データ貰えるし(´・ω・`)ショボンヌ

もうちょっとテストしてみて気が向けば公開したいと思います。

f:id:ch3cooh393:20150308165116p:plain

あと、サムネイル表示機能を持たせようと思ってるのですが、BCIのフォーマットもまた非公開の為、プレビューを出すのは難しいのです。(LZっぽいデータなのですが、僕のスキルじゃ解析出来そうに無いです)

barから画像(BMP&BCIのみ対応)をぶっこ抜く(ネトラン風)ツールです。

barファイルをD&DするとリソースID一覧が表示されるので、適当に選択して、保存ボタンを押してください。

自分が必要な形式のbarでしかテストしていないので問題が沢山あるかも知れません。ご利用はご計画的に。

関連記事

この他にもTipsをまとめておりますのでこちらのページをご参照ください。