如何修改 Chrome 擴充功能儲存的資料?

如何修改 Chrome 擴充功能儲存的資料?

各種 Chrome 擴充功能儲存有關其設定的資料和其他持久性資訊(廣告攔截和幽靈的白名單、tampermonkey 的腳本、時尚的樣式等)。他們把它存放在哪裡?我如何查看和編輯它?

答案1

Local StorageGoogle Chrome瀏覽器以 SQLite 格式(.localstorage檔案)儲存在資料夾中的一些資料。看:如何在 Google Chrome 中開啟本機儲存檔案?

儲存在IndexedDB資料夾中的一些其他資料(對於每個設定檔)(請參閱:Google Chrome 在哪裡保存擴充功能中的 LocalStorage?)在LevelDB格式。它是由 Google 開發的開源鍵值儲存格式,託管在GitHub

要在 Chrome 之外修改 LevelDB 格式的文件,這不是一個簡單的過程,因為您需要實作相容的比較器才能檢查 Chrome 的索引資料庫 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

請注意,您對本機儲存所做的任何變更都可能會被網路應用程式/擴充功能等覆蓋。

答案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文件,重新啟動瀏覽器,遊戲現在應該有修改後的資料。

相關內容