自分用開発メモ

user.dat

  • 全体の形式
    • [d1][d2]...[d9][dx]という形式で、Beta11までは[d9]まで含む。Beta12は[dx]を追加し、その中に[d1]〜[d9]とプラグインが追加するアカウント情報を独自形式でシリアライズしている。
    • [dx]に[d1]〜[d9]を含んでいるのがポイント。API を簡略化している。上位互換用。
    • [dx] のみではなく [d1]〜[d9] を残しているのもポイント。下位互換用。
  • 各 [d] の形式
    • それぞれの[d]は[len][data]の形式になっており、かつ[data]は暗号化されている。
    • つまり、[dx]はシリアライズ+暗号化されている。
    • [len]のチェックを最初にやって、壊れてたら初期化するくらいならできるかなぁ。
  • [len] について
    • [d1]〜[d9]の[len]は1バイト、[dx]の[len]は2バイト(LE)。
    • 従って[dx]のデータ部の長さは65535Byteまで。
  • シリアライズについて
    • <サービス名,id,password,data1,data2><サービス名,...,data2>... という形式。
    • サービス名やidなど各要素内の"<>,%"はURLエンコードしている。

という面倒なことをやったので土曜日の数時間がつぶれた。車輪の再発明どころじゃない。