BinaryCookies

读取和写入 Apple 的 .binarycookies 文件


包含 BinaryCookies 库和 dumpcookies 可执行文件。

使用 brew install interstateone/formulae/dump-cookies 安装 dumpcookies,或从源代码构建。

我已使用真实的 .binarycookies 文件和使用 HTTPCookieStorage API 生成的文件测试了 BinaryCookies 库。它可以完全保真地解码和重新编码这些文件,尽管目前有两个标志的含义未知。

文件格式

文件

字段 字节序 类型 大小 描述
魔数 BE (大端) UTF-8 4 "cook",无终止符
页面数量 BE (大端) 无符号整数 4
页面 N 大小 BE (大端) 无符号整数 4 为 N 个页面重复
页面 N 页面 N 大小 页面 N 内容
校验和 BE (大端) 无符号整数 4 对每个页面的每第 4 个字节求和
页脚 BE (大端) 8 0x071720050000004b
元数据 二进制属性列表 包含 NSHTTPCookieAcceptPolicy 值

页面

字段 字节序 类型 大小 描述
头部 BE (大端) 4 0x00000100
Cookie 数量 LE (小端) 无符号整数 4
Cookie N 偏移量 LE (小端) 无符号整数 4 为 N 个 cookie 重复
页脚 4 0x00000000
Cookie N Cookie N 大小 Cookie N 内容

Cookie

字段 字节序 类型 大小 描述
大小 LE (小端) 无符号整数 4 大小 (字节)
版本 LE (小端) 无符号整数 4 0 或 1
标志 LE (小端) 位字段 4 isSecure = 1, isHTTPOnly = 1 << 2, unknown1 = 1 << 3, unknown2 = 1 << 4
有端口 LE (小端) 无符号整数 4 0 或 1
URL 偏移量 LE (小端) 无符号整数 4 从 cookie 开始处的偏移量
名称偏移量 LE (小端) 无符号整数 4 从 cookie 开始处的偏移量
路径偏移量 LE (小端) 无符号整数 4 从 cookie 开始处的偏移量
值偏移量 LE (小端) 无符号整数 4 从 cookie 开始处的偏移量
注释偏移量 LE (小端) 无符号整数 4 从 cookie 开始处的偏移量,如果不存在则为 0x00000000
注释 URL 偏移量 LE (小端) 无符号整数 4 从 cookie 开始处的偏移量,如果不存在则为 0x00000000
过期时间 LE (小端) 双精度浮点数 8 自 2001 年 1 月 1 日 00:00:00 UTC 以来的秒数
创建时间 LE (小端) 双精度浮点数 8 自 2001 年 1 月 1 日 00:00:00 UTC 以来的秒数
端口 LE (小端) 无符号整数 2 仅当 "Has port" 字段为 1 时才存在
注释 LE (小端) 字符串 空终止,可选
注释 URL LE (小端) 字符串 空终止,可选
URL LE (小端) 字符串 空终止
名称 LE (小端) 字符串 空终止
路径 LE (小端) 字符串 空终止
LE (小端) 字符串 空终止

参考