バックナンバーはこちら。
https://www.simulationroom999.com/blog/In-vehicle-network-backnumber/
はじめに
Vector社BLFをバイナリエディタで覗いてみる回。
登場人物
博識フクロウのフクさん
イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1
エンジニア歴8年の太郎くん
イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1
バイナリエディタで覗いてみたところ?
じゃ、まずはバイナリエディタでBLFの中をみて、
仕様通りか確認していこう。
おー。
先ずは先頭にオブジェクトヘッダがあるはずなんで・・・。
あれ?
どうしたん?
いやー、なんかしょぱなからオブジェクトタイプが変な感じで・・・。
なんだろうね?
先頭に「LOGG」というmSignatureがあって、mHeaderSizeが0x90[byte]。
mObjectSizeがやけに大きいな・・・。
ファイルサイズ分あるんじゃないかなー。
早速雲行きが怪しい・・・。
2つ目のオブジェクトヘッダ
とりあえず、ヘッダサイズに0x90[byte]とあったので、
その分データをスキップしてみよう。
こんどのmSignatureは「LOBJ」って文字列っぽいね。
オブジェクトサイズは0x33CA[byte]でさっきほどでは無いけど、
これも結構大きなサイズだねー。
それもあるんだけど、
オブジェクトヘッダの後ろデータがあんまりルール的じゃないんだよねー。
なんというか、圧縮か暗号化されてるんじゃないかなー。
え?
そんなの仕様書に書いてた??
書いてなかったと思うが・・・。
とりあえず、オブジェクトサイズ分スキップしてみよう。
3つ目のオブジェクトヘッダ
じゃー、オブジェクトサイズである0x33CA分スキップしてみよう。
うーん、「LOBJ」がmSignatureだろうから2byteほどズレてるな・・・。
ちょっと、2byteずらすか。
これは4byteアライメントの仕様が暗黙的にあるのかも。
4byteアライメント?
うん。
データの境界のルールだね。
データの始まりを必ず4の倍数にするルール。
あーなるほど、0x345A=13402だと4の倍数じゃないから、
0x345C=13404が次のオブジェクトヘッダの先頭ってことか。
または、LOBJというSignatureが出てくるまで文字列走査しているか。
うーん、それもありそうだなぁ。
これは、仕様に定義されていないものが結構ありそうな感じだなー。
えー、解読は無理そうなの?
最悪、無理ってことにはなるけど、
なんとなくルールが見えて来たんで、
次回までにちょっと情報整理しておくよ。
頼んだよー。がんばってー。
まとめ
まとめだよ。
- BLFのオブジェクトヘッダを追っかけた。
- 仕様書にないオブジェクトタイプが存在。
- 実データ部は圧縮か、暗号化されている様子。
バックナンバーはこちら。
コメント