① 生バイトの間

データベース=ただのファイル

「データベース」と聞くと難しそうですが、正体はただのファイルです。 SQLiteのファイルは先頭16バイトに必ず決まった文字列を持っています。 まずはそれを実際に見てみましょう。

ページを選ぶ

varintデコード練習

SQLiteのvarintは1〜9バイトの可変長エンコーディングです。16進バイト列を空白区切りで入力してみましょう(例: 81 00)。

見どころ: solitaire.dbの独自バイナリを再生する

他の5DBの列は値がそのままSQLiteのレコード形式で入っているだけですが、 solitaire.dbのrecords.moves列だけは、SQLiteのレコード形式の さらに中に、LITTLE SOLITAIRE独自のバイナリ形式(シード4バイト+ 1手≒1バイトの符号化)が入れ子になっています。上のページ選択でsolitaireを選び recordsテーブルのページを開くと、moves列のバイト範囲を ハイライトできます。ここではそのBLOBを実際にデコードして、対局を再生してみます。

読み込み中…