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。
