mayfwl/google-cookie

★ 1Forks 0PythonGitHub ↗Compare

README

Chrome Cookie 导出工具

功能说明

这个工具可以完整获取本地 Chrome 浏览器的所有 Cookie,并正确解密后导出为 JSON 格式。

主要特性

✅ 完整导出 - 获取所有 Cookie(2000+ 个),包含 SQLite 数据库中的所有原始字段
✅ 正确解密 - 智能处理 Chrome 的加密格式,自动跳过前导混淆字节
✅ 干净数据 - 解密后的 Cookie 值无乱码,可直接使用
✅ 详细信息 - 保留完整的元数据(过期时间、安全标志、域名等)
✅ 统计分析 - 自动生成 Cookie 统计报告

文件说明

  • export_all_cookies.py - 主脚本,完整的 Cookie 导出和解密工具
  • chrome_cookies_all.json - 导出的 Cookie 数据(运行后生成)
  • README.md - 本文档

快速使用

1. 安装依赖

pip3 install cryptography

2. 运行脚本

python3 export_all_cookies.py

3. 查看结果

导出的文件位置:chrome_cookies_all.json(当前目录)

JSON 数据格式

每个 Cookie 包含以下字段(完全对应 SQLite 表结构):

{
  "creation_utc": 13397492224534834,
  "host_key": ".example.com",
  "top_frame_site_key": "",
  "name": "cookie_name",
  "value": "",
  "encrypted_value": "763130698b2460...",
  "decrypted_value": "actual_cookie_value",
  "path": "/",
  "expires_utc": 13429028261000000,
  "is_secure": 1,
  "is_httponly": 1,
  "last_access_utc": 13397492261674879,
  "has_expires": 1,
  "is_persistent": 1,
  "priority": 1,
  "samesite": 0,
  "source_scheme": 2,
  "source_port": 443,
  "last_update_utc": 13397492261674879,
  "source_type": 2,
  "has_cross_site_ancestor": 1,
  "creation_time": "2025-07-20 13:37:04",
  "expires_time": "2026-07-20 13:37:41",
  "last_access_time": "2025-07-20 13:37:41",
  "last_update_time": "2025-07-20 13:37:41"
}

字段说明

时间字段(Chrome 时间戳)

  • creation_utc - 创建时间(微秒)
  • expires_utc - 过期时间(微秒)
  • last_access_utc - 最后访问时间(微秒)
  • last_update_utc - 最后更新时间(微秒)

Chrome 时间戳从 1601-01-01 00:00:00 UTC 开始计算的微秒数

Cookie 值

  • value - 明文值(通常为空)
  • encrypted_value - 加密值(十六进制字符串)
  • decrypted_value - 解密后的实际值(额外添加)

域名和路径

  • host_key - Cookie 所属域名
  • top_frame_site_key - 顶级框架站点
  • name - Cookie 名称
  • path - Cookie 路径

安全标志

  • is_secure - 是否仅 HTTPS(0 或 1)
  • is_httponly - 是否 HttpOnly(0 或 1)
  • samesite - SameSite 策略
    • -1: NO_RESTRICTION
    • 0: NONE
    • 1: LAX
    • 2: STRICT

其他字段

  • has_expires - 是否有过期时间
  • is_persistent - 是否持久化
  • priority - 优先级(0=低, 1=中, 2=高)
  • source_scheme - 来源协议(0=未设置, 1=HTTP, 2=HTTPS)
  • source_port - 来源端口
  • source_type - 来源类型
  • has_cross_site_ancestor - 是否有跨站祖先

可读时间字段(额外添加)

  • creation_time - 创建时间(可读格式)
  • expires_time - 过期时间(可读格式)
  • last_access_time - 最后访问时间(可读格式)
  • last_update_time - 最后更新时间(可读格式)

技术原理

Chrome Cookie 加密机制

Chrome 使用多层加密保护 Cookie 数据,根据 CyberArk 的安全研究:

macOS 解密流程

  1. 获取密钥:从 macOS Keychain 获取 "Chrome Safe Storage" 密钥

    security find-generic-password -w -s 'Chrome Safe Storage' -a 'Chrome'
  2. 密钥派生:使用 PBKDF2-SHA1 派生 AES 密钥

    • Salt: saltysalt
    • Iterations: 1003
    • Key Length: 16 bytes (AES-128)
  3. AES 解密:使用 AES-128-CBC 模式解密

    • IV: 固定的 16 个空格字符
    • 数据格式: v10 + encrypted_data
    • 移除 PKCS7 padding
  4. 智能数据清理:

    • Chrome 在 Cookie 值前添加 32 字节随机混淆数据作为安全措施
    • 本工具智能识别并跳过这些前导字节
    • 只提取真正的 Cookie 值

解密示例

加密数据: v10 + [32字节随机数据] + [实际Cookie值]
           ↓
解密后:   [32字节乱码] + GA1.1.1131695084.1751282747
           ↓ (智能清理)
最终输出: GA1.1.1131695084.1751282747

Windows 解密说明

Windows 系统使用不同的加密机制:

  1. 使用 DPAPI (Data Protection API) 加密密钥
  2. 从 %LOCALAPPDATA%\Google\Chrome\User Data\Local State 获取加密密钥
  3. Cookie 加密格式:v10 + 12字节IV + AES-GCM加密数据

注意:本工具目前仅支持 macOS 系统

参考资料

技术文档

Chrome 数据库位置

  • macOS: ~/Library/Application Support/Google/Chrome/Default/Cookies
  • Windows: %LOCALAPPDATA%\Google\Chrome\User Data\Default\Network\Cookies
  • Linux: ~/.config/google-chrome/Default/Cookies

注意事项

  1. 关闭 Chrome:运行脚本前建议关闭 Chrome 浏览器,避免数据库锁定
  2. 权限要求:macOS 需要 Keychain 访问权限
  3. 数据安全:导出的 JSON 包含解密后的 Cookie,请妥善保管
  4. 仅供学习:本工具仅用于学习研究,请遵守相关法律法规

统计功能

脚本会自动显示:

  • 总 Cookie 数量
  • 涉及域名数量
  • 加密/明文统计
  • 安全标志统计
  • SameSite 分布
  • Top 10 域名(按 Cookie 数量)

License

MIT License

Contributors

mayfwl

Issues