Firefox localStorage 数据库 (data.sqlite) – 如何读取“值”列二进制 (blob) 数据?

问题描述 投票:0回答:1

我在玩浏览器游戏时丢失了我的保存,并且我想检查数据库文件是否仍然包含(可能已损坏,但可能可重新排列)数据。我杀死了 firefox 并获取了位于我的案例中的相关数据库文件的副本,位置为

/home/fdagpigj/.mozilla/firefox/45otyetp.default/storage/default/https+++v6p9d9t4.ssl.hwcdn.net^partitionKey=%28https%2Citch.io%29/ls/data.sqlite
,经过一番努力后,我使用命令
find . -type f -exec bash -c 'grep -q "Villager" < <(head "$1") && printf '%s\n' "$1"' _ {} \;

找到了该文件

上面是 sqlite 数据库浏览器中文件的屏幕截图。我能够从值列中提取二进制数据并将其写入一个新的二进制文件,但我对下一步感到困惑 - 我如何真正打开这个二进制文件? Firefox 以什么格式存储它?我怀疑这是游戏将二进制数据存储到 localStorage 中,因为我可以在调试控制台存储选项卡中查看它(无论如何都是游戏的较新自动保存)(它只是那里的 base64 编码的 json)。

没有程序能够识别二进制数据,如果我将其视为 ascii 文本,那么它只是乱码。

sqlite firefox local-storage binary-data
1个回答
0
投票

compression_type 设置为“1”的行中 value 列中的值使用 snappy 算法进行压缩。

某些编程语言有一些库可以处理这种压缩,例如:用于 PHP 的 flow-php/snappy 和用于 go 的 https://github.com/golang/snappy

© www.soinside.com 2019 - 2024. All rights reserved.