馬鹿な人日記

常にPCいじってる馬鹿な人の日記です。

その他発見&軽くまとめ

分かりやすいものはだいたい掘り出したんで、
ここらで軽くまとめて区切りを入れ、
次から難しそうな辺りに挑戦してみたいと思います。

とりあえず新発見と考察。

まずKMIセクションの謎の6バイト。
あれの意味が分かりました。
2バイトずつ各レイヤの画像データのサイズを格納しているようです。
サイズをデータ本体よりも後に配置するなんて、面倒臭い事しますね。

KMCセクションの中身ですが、
まず最初に4バイトの謎の数値。
そしてその後に画像データが並んでいる。
順番はページ通りで、各ページデータ内では、
それぞれのレイヤの画像データがレイヤA→レイヤB→レイヤCの順で並んでいる。
つまり
f:id:bakanahito:20130810110919j:plain
こんな感じ。分かりやすい。

ちなみに、似たようなページを何枚も続けたメモだと、
1ページ目の各レイヤのサイズだけが他のページと比べて非常に大きいので、
前のページの同じレイヤとの差分を格納していると思われます。

あとKSNセクションの最初の4バイト。
多分録音した時の再生スピードだと思われます。

最後にチェックサム
あまりにも分かりきった事だったので今までやってきませんでしたが、
改変したメモファイルをうごメモ3Dに読み込ませるとどうなるか、
実験してみました。
「このメモは壊れています。削除します。」
はい。予想通りの実験結果でした。



で、まとめ。

ファイル構造
内容 サイズ 備考
KFHセクション 212byte ファイルヘッダ
KTNセクション 可変 サムネイル
KMCセクション 可変 ページ画像
KMIセクション 可変 基本ページ情報
KSNセクション 可変 音声
チェックサム 256byte 解析は多分不可能
基本セクションフォーマット
内容 意味 サイズ 備考
マジックナンバー セクション識別子 4byte 末尾1byteに
別データの可能性あり
サイズ セクションのサイズ 4byte なし
データ データ本体 [サイズ]byte なし
KFHセクション
内容 サイズ 備考
不明 4byte なし
作成日時 4byte 2000/1/1 00:00:00からの経過秒数
最終更新日時 4byte
パディング 4byte なし
原作者ID 10byte なし
親作者ID 10byte なし
作者ID 10byte なし
原作者名 22byte UTF-16で格納 末尾はヌル文字
親作者名 22byte
作者名 22byte
原作ファイル名 28byte ASCIIで格納 拡張子は無い
親作ファイル名 28byte
ファイル名 28byte
ページ数 2byte なし
サムネイル用ページ番号 2byte 0始まり
各種フラグ 2byte 詳しくは下に記載
スピード 1byte なし
レイヤの可視/不可視 1byte 下位ビットから順番にA,B,Cの順 1なら不可視



各種フラグ

内容 位置(上位ビットから0始まり) 備考
筆箱 3 0なら普通 1なら上級
ループ 6 1ならループする
ロック 7 1ならロックあり
KTNセクション

不明

KMCセクション
内容 サイズ 備考
不明 4byte なし


レイヤA画像データ 可変 フォーマットは謎
レイヤB画像データ 可変
レイヤC画像データ 可変

×ページ数

KMIセクション
内容 サイズ 備考
最初のページか 1word 最初のページならF それ以外なら8
紙色 1word 色の対応は下記
レイヤAペン色1 1word
レイヤAペン色2 1word
レイヤBペン色1 1word
レイヤBペン色2 1word
レイヤCペン色1 1word
レイヤCペン色2 1word
レイヤAバイト数 2byte KMCセクションにおけるバイト数
レイヤBバイト数 2byte
レイヤCバイト数 2byte
ページ作者ID 10byte なし
レイヤA奥行き 1byte なし
レイヤB奥行き 1byte なし
レイヤC奥行き 1byte なし
SEシーケンス 1byte 下位ビットから順にA,X,Y,十字
パディング 4byte なし

×ページ数

紙色の対応

0 1 2 3 4 5 6
グリッド

ペン色の対応

0 1 2 3 4 5
KSNセクション
内容 サイズ 備考
録音時再生速度 4byte なし
AボタンSEサイズ 4byte なし
XボタンSEサイズ 4byte なし
YボタンSEサイズ 4byte なし
十字ボタンSEサイズ 4byte なし
波形データ ?


今分かっているのは以上です。