Chromium 扩展的 Local Extension Settings 目录里是什么

Chromium 系浏览器(Chrome、Edge、Brave、指纹浏览器)的用户目录里经常能看到:

Default/Local Extension Settings/<extension-id>/
├── 000003.log
├── 008803.log
├── CURRENT
├── LOCK
├── LOG
└── MANIFEST-000002

看到 .log 会以为是普通日志文件——其实不是,这是 chrome.storage.local API 底层的 LevelDB 数据文件

什么是 LevelDB WAL

LevelDB 是 Google 出的嵌入式 KV 库,Chromium 用它存扩展的持久数据。文件角色:

文件含义
000xxx.log当前写入的 WAL(Write-Ahead Log)
000xxx.ldb已 compact 完毕的 SSTable
CURRENT指向最新的 MANIFEST
MANIFEST-xxx版本元信息
LOG真正的运行日志
LOCK进程锁

.log二进制格式的 KV 追加写。用文本编辑器打开会看到一堆乱码 + 部分可见的 JSON 片段——那些片段是扩展存进去的数据。

扩展 ID 反查扩展名

看到目录名是一串 32 字符:

mcohilncbfahbmgdjkbpemcciiolgcge

想知道是哪个扩展,几个方法:

方法 1:浏览器里查

chrome://extensions/ 打开开发者模式,右上角就能看到每个扩展的 ID。搜刚才那串 ID 就找到了。

方法 2:读 manifest.json

扩展本体在:

<UserDataDir>/Default/Extensions/<extid>/<version>/manifest.json

打开 manifest:

{
  "name": "OKX Wallet",
  "version": "3.x.x",
  "description": "..."
}

方法 3:看 .log 里的可见字符串

Windows:

findstr /C:"name" 000003.log

Linux/macOS:

strings 000003.log | head -50

有些扩展会把 name / apiUrl / host 直接明文写进 storage,能顺出线索。

用代码正经读它

不建议手工解析二进制。装 levelup + leveldown(Node),或者用 Python 的 plyvel

# pip install plyvel
import plyvel

db = plyvel.DB(
    r"C:\Users\me\AppData\Local\Google\Chrome\User Data\Default\Local Extension Settings\mcohilncbfahbmgdjkbpemcciiolgcge",
    create_if_missing=False,
)
for k, v in db:
    print(k, "=", v[:200])
db.close()

注意 Chrome 必须关掉,不然 LOCK 拿不到,Python 会报:

plyvel._plyvel.IOError: Lock file exists

Node 版:

const level = require("level");

const db = level("./Local Extension Settings/mcohilncbfahbmgdjkbpemcciiolgcge");
db.createReadStream()
  .on("data", ({ key, value }) => console.log(key.toString(), value.toString()))
  .on("end", () => db.close());

里面存的是什么

看到的 JSON 值大多是扩展自己 chrome.storage.local.set 存的东西。举例:

  • 密码管理器 → 加密后的密码库
  • 广告拦截器 → 规则订阅、白名单
  • 翻译扩展 → 用户偏好、缓存
  • Web3 钱包(MetaMask / OKX / Phantom 等)→ 加密后的助记词、地址簿、dApp 授权列表

Web3 钱包一般用 AES/PBKDF2 之类加密助记词,密码不知道也解不出。但指纹浏览器同步这些数据的时候,就是在拷贝这个目录里的 .log

迁移扩展数据

想把一个 profile 里的扩展数据搬到另一个 profile,直接关掉 Chrome 后整目录拷过去:

xcopy /E /I ^
  "C:\Users\A\AppData\Local\Google\Chrome\User Data\Default\Local Extension Settings\<extid>" ^
  "C:\Users\B\AppData\Local\Google\Chrome\User Data\Default\Local Extension Settings\<extid>"

Extensions/<extid> 目录(扩展本体)也要一起拷才能真正生效。

一句话总结

Local Extension Settings/<extid>/000xxx.log = LevelDB 的 WAL 文件,不是文本日志。想看内容用 plyvel/level 打开数据库;想知道是哪个扩展就查 ID 或读 manifest.json