Wie kann ich von Chrome-Erweiterungen gespeicherte Daten ändern?

Wie kann ich von Chrome-Erweiterungen gespeicherte Daten ändern?

Verschiedene Chrome-Erweiterungen speichern Daten über ihre Einstellungen und andere dauerhafte Informationen (Whitelists für Adblock und Ghostery, Skripte für Tampermonkey, Stile für Stylish usw.). Wo speichern sie diese? Wie kann ich sie anzeigen und bearbeiten?

Antwort1

Einige Daten speichert Google Chrome in Local StorageOrdnern im SQLite-Format ( .localstorageDateien). Siehe:Wie öffne ich Local Storage-Dateien in Google Chrome?

Einige andere Daten, die in IndexedDBOrdnern (für jedes Profil) gespeichert sind (siehe:Wo speichert Google Chrome LocalStorage aus Erweiterungen?) sind inLevelDB-Format. Es handelt sich um ein Open-Source-Key-Value-Store-Format, das von Google entwickelt wurde und aufGitHub.

Das Ändern von Dateien im LevelDB-Format außerhalb von Chrome ist kein einfacher Vorgang, da Sie einen kompatiblen Komparator implementieren müssen, um die Indexed DB LevelDB-Instanzen von Chrome zu überprüfen. Siehe:Wie greife ich auf die IndexedDB/LevelDB-Dateien von Google Chrome zu?

Antwort2

Ein weiterer Profilordner, der einen Blick wert ist Local Extension Settings, ist , der LevelDB-Speicher enthält.

Es gibt eine Frage zuSoftware-EmpfehlungenIch suche einen LevelDB-Client, aber es scheint nicht viele gute kostenlose Optionen zu geben. Für die Erweiterung, mit der ich herumgespielt habe, verwende ich dieebenedbDie Python-Bibliothek war ausreichend:

>>> 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')

Antwort3

Vielleicht könnten Sie diese hier überprüfen:

Es sieht aus wie das SQLite-Format (Dateien mit der Erweiterung .localstorage).

Bearbeiten: Sie können auch das Entwicklungstool überprüfen und dann auf die Registerkarte „Anwendung“ > „Lokaler Speicher“ klicken.

Beispiel: auf der Adblock-Optionsseite:
(Quelle:image-share.com)

Diese Datei entspricht …\Data\profile\Default\Local Storage\chrome-extension_gighmmpiobklfepjocnamgkkbiglidom_0.localstorage

Bitte beachten Sie, dass alle Änderungen, die Sie am lokalen Speicher vornehmen, von der Webanwendung/Erweiterung usw. überschrieben werden können.

Antwort4

Ein Beispiel zum Bearbeiten von .sol-Dateien, die mit der Chrome-Erweiterung „Ruffle“ gespeichert sind:

Navigieren Sie zu DevTools => Anwendung => Lokaler Speicher, wählen Sie die Erweiterung und die Datei aus. Es gibt Schlüssel=Wert-Einträge. Der Wert ist eine Base64-Zeichenfolge.

Um dieses Beispiel fortzusetzen, könnte es für dieses Thema auch relevant sein: Verwenden Sie den „Save Manager“ von Ruffle und ändern Sie ihn mit Minerva (hat einen GitHub-Quellcode) und Base64, um den Wert zu erhalten.

Zurück bei Key=Value ändern Sie den Wert. Er wird momentan nicht gespeichert. Navigieren Sie zu „~/.config/google-chrome/Default/Local Storage/leveldb/“, dort befinden sich archivierte .ldb-Dateien und eine .log-Datei, die die Live-LDB ist. Kopieren Sie die .log-Datei, schließen Sie den Browser, überschreiben Sie die .log-Datei mit der Kopie, starten Sie den Browser neu und das Spiel sollte jetzt die geänderten Daten haben.

verwandte Informationen