Como posso modificar os dados armazenados pelas extensões do Chrome?

Como posso modificar os dados armazenados pelas extensões do Chrome?

Várias extensões do Chrome armazenam dados sobre suas configurações e outras informações persistentes (listas de permissões para adblock e ghostery, scripts para tampermonkey, estilos para estilos, etc.). Onde eles armazenam isso? Como posso visualizá-lo e editá-lo?

Responder1

Alguns dados que o Google Chrome armazena em Local Storagepasta no formato SQLite ( .localstoragearquivos). Ver:Como abro arquivos de armazenamento local no Google Chrome?

Alguns outros dados que são armazenados em IndexedDBpastas (para cada perfil) (ver:Onde o Google Chrome salva o LocalStorage das extensões?) estão dentroFormato LevelDB. É um formato de armazenamento de valores-chave de código aberto desenvolvido pelo Google e está hospedado emGitHub.

Para modificar arquivos no formato LevelDB fora do Chrome, não é um processo simples, pois você precisaria implementar um comparador compatível para inspecionar as instâncias de leveldb do banco de dados indexado do Chrome. Ver:Como acessar os arquivos IndexedDB/LevelDB do Google Chrome?

Responder2

Outra pasta de perfil que vale a pena examinar é a Local Extension Settings, que contém armazenamentos LevelDB.

Há uma pergunta sobreRecomendações de softwareprocurando um cliente LevelDB, mas não parece haver muitas boas opções gratuitas. Para a extensão que eu estava mexendo, usando oníveldbA biblioteca Python foi 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')

Responder3

Talvez você possa verificar isto:

Parece o formato SQLite (arquivos de extensão .localstorage).

Editar: você também pode verificar a ferramenta de desenvolvimento e, em seguida, a guia Aplicativo> Armazenamento local.

Por exemplo, na página de opções do Adblock:
(fonte:image-share.com)

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

Observe que qualquer alteração feita no armazenamento local pode ser substituída pelo aplicativo/extensão da web, etc.

Responder4

Um exemplo para editar arquivos .sol armazenados pela extensão ruffle chrome:

Navegue até DevTools => Application => Local Storage , selecione a extensão, o arquivo. Existem entradas Key=Value. O valor é uma string base64.

Para continuar este exemplo, pode ser relevante também neste tópico: use o "Save Manager" do ruffle e modifique-o com minerva (tem um código fonte no github) e base64 para obter o valor.

De volta a Key=Value, modifique o valor. Não está salvo neste momento. Navegue até "~/.config/google-chrome/Default/Local Storage/leveldb/" , existem arquivos .ldb e um arquivo .log que é o ldb ativo. Copie o arquivo .log, feche o navegador, substitua o arquivo .log pela cópia, reinicie o navegador e o jogo deverá ter os dados modificados agora.

informação relacionada