¿Cómo puedo modificar los datos almacenados por las extensiones de Chrome?

¿Cómo puedo modificar los datos almacenados por las extensiones de Chrome?

Varias extensiones de Chrome almacenan datos sobre su configuración y otra información persistente (listas blancas para Adblock y Ghostery, scripts para Tampermonkey, estilos para Stylish, etc.). ¿Dónde lo guardan? ¿Cómo puedo verlo y editarlo?

Respuesta1

Algunos datos que Google Chrome almacena en Local Storageuna carpeta en formato SQLite ( .localstoragearchivos). Ver:¿Cómo abro archivos de almacenamiento local en Google Chrome?

Algunos otros datos que se almacenan en IndexedDBcarpetas (para cada perfil) (ver:¿Dónde guarda Google Chrome el LocalStorage de las Extensiones?) están enFormato nivelDB. Es un formato de almacén de clave-valor de código abierto desarrollado por Google y está alojado enGitHub.

Para modificar archivos en formato LevelDB fuera de Chrome, no es un proceso sencillo ya que necesitaría implementar un comparador compatible para inspeccionar las instancias de LevelDB indexadas de Chrome. Ver:¿Cómo acceder a los archivos IndexedDB/LevelDB de Google Chrome?

Respuesta2

Otra carpeta de perfil que vale la pena examinar es Local Extension Settings, que contiene tiendas LevelDB.

Hay una pregunta sobreRecomendaciones de softwareEstoy buscando un cliente LevelDB, pero no parece haber muchas buenas opciones gratuitas. Para la extensión con la que estaba jugando, usando elniveldbLa biblioteca de Python fue suficiente:

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

Respuesta3

Quizás puedas comprobar estos:

Parece formato SQLite (archivos de extensión .localstorage).

Editar: también puede consultar la herramienta de desarrollo y luego la pestaña Aplicación > Almacenamiento local.

Por ejemplo, en la página de opciones de Adblock:
(fuente:imagen-compartir.com)

Este archivo corresponde a ...\Data\profile\Default\Local Storage\chrome-extension_gighmmpiobklfepjocnamgkkbiglidom_0.localstorage

Tenga en cuenta que cualquier cambio que realice en el almacenamiento local puede ser sobrescrito por la aplicación/extensión web, etc.

Respuesta4

Un ejemplo para editar archivos .sol almacenados con la extensión ruffle chrome:

Navegue a DevTools => Aplicación => Almacenamiento local, seleccione la extensión, el archivo. Hay entradas Clave=Valor. El valor es una cadena base64.

Para continuar con este ejemplo, también puede ser relevante en este tema: use el "Administrador de guardado" de ruffle y modifíquelo con minerva (tiene un código fuente de github) y base64 para obtener el valor.

De vuelta en Clave=Valor, modifique el Valor. No está guardado en este momento. Navegue a "~/.config/google-chrome/Default/Local Storage/leveldb/", hay archivos .ldb de archivo y un archivo .log que es el ldb activo. Copie el archivo .log, cierre el navegador, sobrescriba el archivo .log con la copia, reinicie el navegador y el juego debería tener los datos modificados ahora.

información relacionada