Как изменить данные, хранящиеся в расширениях Chrome?

Как изменить данные, хранящиеся в расширениях Chrome?

Различные расширения Chrome хранят данные о своих настройках и другую постоянную информацию (белые списки для adblock и ghostery, скрипты для tampermonkey, стили для Stylish и т. д.). Где они это хранят? Как я могу просмотреть и отредактировать это?

решение1

Некоторые данные Google Chrome хранит в Local Storageпапке в формате SQLite ( .localstorageфайлы). Смотрите:Как открыть файлы локального хранилища в Google Chrome?

Некоторые другие данные, которые хранятся в IndexedDBпапках (для каждого профиля) (см.:Где Google Chrome сохраняет LocalStorage из расширений?) находятся вФормат LevelDB. Это формат хранилища ключей и значений с открытым исходным кодом, разработанный Google и размещенный наGitHub.

Чтобы изменить файлы в формате LevelDB вне Chrome, это не простой процесс, поскольку вам нужно будет реализовать совместимый компаратор для проверки экземпляров индексированной базы данных Chrome leveldb. Смотрите:Как получить доступ к файлам IndexedDB/LevelDB в Google Chrome?

решение2

Еще одна папка профиля, на которую стоит обратить внимание Local Extension Settings, — это , содержащая хранилища LevelDB.

Есть вопрос по темеРекомендации по программному обеспечениюищу клиент LevelDB, но, похоже, хороших бесплатных вариантов не так уж много. Для расширения, с которым я возился, используяуровеньdbДостаточно было библиотеки 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:
(источник:image-share.com)

Этот файл соответствует ...\Data\profile\Default\Local Storage\chrome-extension_gighmmpiobklfepjocnamgkkbiglidom_0.localstorage

Обратите внимание, что любые изменения, внесенные вами в локальное хранилище, могут быть перезаписаны веб-приложением/расширением и т. д.

решение4

Пример редактирования файлов .sol, сохраненных расширением ruffle для Chrome:

Перейдите в 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 копией, перезапустите браузер, и игра должна иметь измененные данные.

Связанный контент