各种 chrome 扩展程序都会存储有关其设置和其他持久信息的数据(adblock 和 ghostery 的白名单、tampermonkey 的脚本、styling 的样式等)。它们将这些数据存储在哪里?我如何查看和编辑这些数据?
答案1
Google Chrome 的一些数据Local Storage
以 SQLite 格式存储在文件夹中(.localstorage
文件)。请参阅:如何在 Google Chrome 中打开本地存储文件?
存储在IndexedDB
文件夹中的一些其他数据(针对每个配置文件)(请参阅:Google Chrome 将扩展程序中的 LocalStorage 保存在哪里?)位于LevelDB 格式。这是 Google 开发的一种开源键值存储格式,托管于GitHub。
要在 Chrome 之外修改 LevelDB 格式的文件,这不是一个简单的过程,因为您需要实现兼容的比较器才能检查 Chrome 的 Indexed DB leveldb 实例。请参阅:如何访问 Google Chrome 的 IndexedDB/LevelDB 文件?
答案2
另一个值得研究的配置文件夹是Local Extension Settings
,其中包含 LevelDB 存储。
有一个问题软件推荐正在寻找 LevelDB 客户端,但似乎没有太多好的免费选项。对于我正在使用的扩展,使用级别数据库Python 库就足够了:
>>> import leveldb
>>> db = leveldb.LevelDB('path/to/Chrome profile/Local Extension Settings/extension id')
>>> # Available library methods
>>> dir(db)
['CompactRange', 'CreateSnapshot', 'Delete', 'Get', 'GetStats', 'Put', 'RangeIter', 'Write', ...]
>>> # List of keys
>>> [x[0] for x in db.RangeIter()]
[bytearray(b'accessToken'), bytearray(b'count'), bytearray(b'fullListArr'), ...]
>>> # Access keys with bytestrings
>>> db.Get(b'donated')
bytearray(b'true')
>>> # Put values with bytestrings
>>> db.Put(b'donated', b'false')
答案3
也许你可以检查一下这些:
它看起来像 SQLite 格式(.localstorage 扩展文件)。
编辑:您还可以检查开发工具,然后检查应用程序选项卡>本地存储。
例如在 Adblock 选项页面上:
(来源:图片共享网)
此文件对应于...\Data\profile\Default\Local Storage\chrome-extension_gighmmpiobklfepjocnamgkkbiglidom_0.localstorage
请注意,您在本地存储上所做的任何更改都可能会被 Web 应用程序/扩展等覆盖。
答案4
编辑 ruffle chrome 扩展存储的 .sol 文件的示例:
导航到 DevTools => Application => Local Storage ,选择扩展名,文件。有 Key=Value 条目。该值是 base64 字符串。
继续这个例子,可能也与这个主题相关:使用 ruffle 的“保存管理器”并用 minerva(有一个 github 源代码)和 base64 对其进行修改以获取值。
回到 Key=Value,修改 Value。此时它尚未保存。导航到“~/.config/google-chrome/Default/Local Storage/leveldb/”,那里有存档 .ldb 文件和一个 .log 文件,即实时 ldb。复制 .log 文件,关闭浏览器,用副本覆盖 .log 文件,重新启动浏览器,游戏现在应该有修改后的数据了。