web-dev-qa-db-ja.com

このChrome拡張機能で使用される埋め込みデータベース形式は何ですか?

Chrome拡張機能 F.B。Purity データを~/.config/chromium/Default/Local Extension Settings/ncdlagniojmheiklojdcpdaeepochckl/000003.logに書き込みます(名前にもかかわらずログファイルではありません)。

このファイルは、とりわけ大きなJSON文字列を含む一種のデータベースです。これがvimで見られるファイルの始まりです:

????C^@^A^A^@^@^@^@^@^@^@^A^@^@^@^A^Kfbpfirstrun)"Fri Apr 15 2016 16:59:41 
GMT+0900 (JST)"??[E7^@^A^B^@^@^@^@^@^@^@^A^@^@^@^A^Rfbplastupdatecheck^V"
1460707185929:14.7.0"??U/7^@^A^C^@^@^@^@^@^@^@^A^@^@^@^A^Ylastfriendcheck-
631501256^O"1460707180223"0?wB3^?^B^D^@^@^@^@^@^@^@^A^@^@^@^A^Xoldfriendstore-
631501256??^G"{\"27333\":\"

...その時点で大きなJSON文字列が始まります。
ファイルの先頭は16進数と同じです。

C4 C4 3F 81 43 00 01 01 00 00 00 00 00 00 00 01 00
00 00 01 0B 66 62 70 66 69 72 73 74 72 75 6E 29 22
46 72 69 20 41 70 72 20 31 35 20 32 30 31 36 20 31
36 3A 35 39 3A 34 31 20 47 4D 54 2B 30 39 30 30 20
28 4A 53 54 29 22 AE B6 5B 45 37 00 01 02 00 00 00
00 00 00 00 01 00 00 00 01 12 66 62 70 6C 61 73 74
75 70 64 61 74 65 63 68 65 63 6B 16 22 31 34 36 30
37 30 37 31 38 35 39 32 39 3A 31 34 2E 37 2E 30 22
A6 C0 55 2F 37 00 01 03 00 00 00 00 00 00 00 01 00
00 00 01 19 6C 61 73 74 66 72 69 65 6E 64 63 68 65
63 6B 2D 36 33 31 35 30 31 32 35 36 0F 22 31 34 36
30 37 30 37 31 38 30 32 32 33 22 30 AC 77 42 33 7F
02 04 00 00 00 00 00 00 00 01 00 00 00 01 18 6F 6C
64 66 72 69 65 6E 64 73 74 6F 72 65 2D 36 33 31 35
30 31 32 35 36 E3 C5 07 22 7B 5C 22 32 37 33 33 33
5C 22 3A 5C 22

[〜#〜]質問[〜#〜]:それはどのようなデータベース形式ですか?

SQLitebrowserはそれを開くことを拒否します。 Ubuntuのfileコマンドはdataとだけ言っています。私の目標は、そのファイルから最初のJSON文字列を抽出することです。最新のChromiumを使用しています。

7
Nicolas Raoul

LevelDB 、Key-Valueストアです。

NodeJSと levelup を使用してデータにアクセスできます。

var levelup = require("levelup");
var db = levelup("path/to/directory");
db.createReadStream().on("data", data => console.log(data.key, " => ", data.value));

(レベルアップでは、ディスク上のデータベースにアクセスするために leveldown をインストールする必要があります。)

9
Daniel B

ファイルは LevelDB形式 Googleによって開発され、コードは GitHub でホストされています。

leveldb-json ユーティリティを使用して.indexeddb.leveldbフォルダをポイントすることでデータをエクスポートできる可能性がありますが、最初に互換性のあるコンパレータを実装する必要があります(Chromeは独自のコンパレータ実装を提供します) GoogleChromeのIndexedDB/LevelDBファイルにアクセスする方法? の情報に従ってChromeのIndexed DBleveldbインスタンスを検査します。

3
kenorb