从 google chrome userdir (>=20) 恢复会话 cookie

Posted

技术标签:

【中文标题】从 google chrome userdir (>=20) 恢复会话 cookie【英文标题】:Restore session cookies from google chrome userdir (>=20) 【发布时间】:2012-07-08 00:12:05 【问题描述】:

Chrome 20(或 chrome 19)中有一个功能(或错误 - 请参阅 Chrome doesn't delete session cookies 问题 - 可能是 issue 128513)。有一个选项“当我关闭浏览器时清除 cookie 和其他网站和插件数据” - 禁用;和“继续我离开的地方” - 启用。通过这样的设置,即使在关闭浏览器后,Chrome 也会保存会话 cookie(在浏览器关闭时标记为删除)。甚至 https(安全)cookie 也会被保存。

(我仔细检查了 Chrome 是否已关闭,并且这里没有任何正在运行的 Chrome)

那么问题来了:

Chrome 如何将此类仅限会话的 cookie 保存在 UserDir 中(在所有用户设置的目录中,就像 firefox 的配置文件一样)?假设 chrome 已关闭,我们可以完全访问 UserDir 和注册表。

cookie 存储在哪里?它们是 SQLite 还是其他磁盘格式?它们是否加密?

【问题讨论】:

【参考方案1】:

嗯,Chrome的UserDir中好像有“Cookies”文件:

Documents and Settings\USERNAME\Local Settings\Application Data\Google\Chrome\User Data\Default

Users\USERNAME\AppData\Local\Google\Chrome\User Data\Default

此文件位于 SQLite 数据库中(可以通过许多工具打开,例如 sqlitebrowser.org/)。有表“cookies”(2015 年 4 月,M42 版本稳定):

INTEGER creation_utc
TEXT host_key
TEXT name
TEXT value
TEXT path
INTEGER expires_utc
INTEGER secure
INTEGER httponly
INTEGER last_access_utc
INTEGER has_expires
INTEGER persistent
INTEGER priority
BLOB encrypted_value

许多最近cookies的“value”文本字段为空; cookie 值存储在 encrypted_value BLOB 中(我认为,前段时间切换到加密存储 cookie - commited in February 2014、issue 313323 - 较旧的 cookie 存储未加密,甚至是安全的)。会话 cookie 也在文件中。

已为 (MAC) OS X 和 Windows 启用加密:

加密所选操作系统上所有存储的 cookie。

作为保护私人用户信息目标的一部分,这会使用特定于用户的加密 API 对操作系统上的 cookie 值进行加密,并且不会以其他方式保护这些数据。

性能测试表明,在 Mac 上每个 cookie 的损失约为 1 毫秒(无论大小),在 Windows 下为 0.1 毫秒到 0.7 毫秒(取决于大小)。这在旧硬件上会更高,但仍然微不足道。

加密数据是二进制的(在 Windows 上具有 128 字节的开销),并且二进制数据必须存储在 BLOB 中,因此只有两个字段(“值”或“加密值”)中的一个具有数据,而另一个为空。但是,在访问 cookie 时需要读取和写入这两个值,因为它们被标记为“非空”)。

溢出有几种解密工具: * 对于 Windows:Encrypted cookies in Chrome * 对于 Linux 和 OS X:Decrypt Chrome Linux BLOB encrypted cookies in Python; Decrypting Chromium cookies

还有一个“当前会话”文件,当 Chrome 使用 0x534e5353 0x01 (SNSS\0x01) 魔法运行时受到保护。有关格式的一些信息在这里:https://github.com/JRBANCEL/Chromagnon/wiki/Reverse-Engineering-SNSS-Format (source - chrome/browser/sessions/session_command.h)

【讨论】:

以上是关于从 google chrome userdir (>=20) 恢复会话 cookie的主要内容,如果未能解决你的问题,请参考以下文章

Apache功能之userdir

从脚本安装 Google Chrome 扩展

Google禁止从第三方网站安装Chrome扩展程序

text 从Powershell安装Google Chrome

从Chrome扩展程序访问Google文档

python 用于直接从Google Chrome网上应用店下载Chrome扩展程序(CRX)文件的Python脚本。