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

时间:2012-07-08 05:00:58

标签: windows google-chrome cookies session-cookies

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

(我再次检查Chrome已关闭,此处没有任何正在运行的Chrome)

所以,问题是:

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

存储cookie的地方?它们是SQLite还是其他ondisk格式?他们是否加密?

1 个答案:

答案 0 :(得分:1)

嗯,似乎有" Cookies" Chrome的UserDir文件:

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

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

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

  

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

     

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

     

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

     

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

溢出时有几种解密工具: *对于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)