馬鹿な人日記

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

なんだこのデータは

id:harimau_tigrisさんに応援を頂きました。嬉しいです。
いやー、次々と覆ります。
前回「0x00D0からが本データではないか」と言いましたが、誤りでした。

あの二つのメモでは急に0x00D0から一致し出した。それは正しいのですが、
いままで調査したあらゆるメモにおいて、
0x00E0~0x032Cの実に589byteが、
あろうことか寸分狂わず一致していたのです。

なにこれ。データってそれぞれが違う物だから記録するもんじゃないの?
おかしい。なにこれ。

さらに混乱させるのはワールドうごメモギャラリーの、
DSiシアターライブラリーから保存してきたメモ達。
つまりDSiからのインポートメモ。(以降「DSiメモ」と表記)

こいつらだけあの完全一致地帯が、あろうことか全く違ったのです。
なんなんだ。おかしい。狂っている。

そういえばDSiメモの特殊な所は他にもう一つあった。
ファイル名だ。

現在ファイル名の規則性は未解明だが、
DSiメモとそれ以外のメモでは、
明らかにファイル名の様子が違う。

とりあえず普通のメモのファイル名を出してみよう。
自作のメモ、ダウンロードしたメモ、サンプルのメモなど、
手持ちから適当に五つ。

cwfoguh4wlfy05til4mwprh4nyan.kwz [自作]
cwfoguh4wlfy05yv0mmtpfknnyan.kwz [自作]
cjcccccwcccccccanltthfjfaaan.kwz [サンプル]
cw42iut2ef3zao2ehqdtpr2xt2an.kwz [ダウンロード]
cczwz4jjn1lqk2dsygftp4omn2an.kwz [ダウンロード]

なんとなく傾向の違いを感じるものの、どれも似たようなもんだ。
さて、問題のDSiメモ。自分のメモから適当に二つ。

mcswfxdw4flknodck1stsibq12bn.kwz
mcswfxdw4flknof0lolwn5febvac.kwz

見るからに異質だ。だからなんだって話だが。
とにかく他とは違う。


さて、今回は余りにも進展が無い。唯一のそれらしい収穫はこれ。
更新日時のデータ。

謎データB・Cがそうでした。
おそらく謎データBがメモを作った日時で、謎データCが最後に編集した日時。
同じだったり、ちょっと違ったり、かなり似てたりしてた理由もこれで解決です。
さて、データの格納方法ですが、DSiの時(ppmフォーマット)と同じです。
どんなのかと言うと、2000年1月1日0時0分0秒からの経過秒数をリトルエンディアンで記録してあります。
要するにUNIX時間の2000年からバージョン。(UNIX時間は1970年から)

しかし、謎データAが相変わらず謎です。
前にループのフラグを調べるために二つのファイルを作り、
ループと更新日時以外はどこをとっても同じように作ったはずなのですが、
それでも違っていました。
当時は日時のデータの可能性を考えていましたが、それも今回で完全に否定され、
ループフラグっぽいアドレスは別の個所にありました。(まだ完全には確認取れてない)
あまりにもころころ変わるので、内部のデータのアドレスやらデータの長さやら、
そんな感じのデータと考えています。

あと、サムネイルに使われたページのデータ発見。
0x00CE~0x00CFの2バイト。ページ数の直後ですね。

ここらで前に書いたフォーマットの表を書き直してみよう。

マジックナンバー? 8byte(0x0000~0x0007)
謎データA 4byte(0x0008~0x000B)
作成日時 4byte(0x000C~0x000F)
更新日時 4byte(0x0010~0x0013)
パディング? 4byte(0x0014~0x0017)
原作者ID 10byte(0x0018~0x0021)
親作者ID 10byte(0x0022~0x002B)
作者ID 10byte(0x002C~0x0035)
原作者名 22byte(0x0036~0x004B)
親作者名 22byte(0x004C~0x0061)
作者名 22byte(0x0062~0x0077)
原作ファイル名 28byte(0x0078~0x0093)
親作ファイル名 28byte(0x0094~0x00AF)
ファイル名 28byte(0x00B0~0x00CB)
ページ数 2byte(0x00CC~0x00CD)
サムネイルページ番号 2byte(0x00CE~0x00CF)

こんな感じ。では。