Extract and decrypt browser data, supporting multiple data types, runnable on various operating systems (macOS, Windows, Linux).
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 29 天前 | ||
| 25 天前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 15 天前 | ||
| 25 天前 | ||
| 25 天前 | ||
| 2 个月前 | ||
| 25 天前 | ||
| 2 个月前 | ||
| 4 个月前 | ||
| 4 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 4 个月前 | ||
| 2 个月前 | ||
| 2 年前 | ||
| 4 个月前 | ||
| 5 年前 | ||
| 2 年前 | ||
| 4 个月前 | ||
| 15 天前 | ||
| 29 天前 | ||
| 29 天前 |
HackBrowserData
HackBrowserData 是一款命令行工具,用于解密并导出浏览器中的数据(包括密码、历史记录、Cookie、书签、信用卡信息、下载记录、localStorage、sessionStorage 及扩展程序)。它支持 Windows、macOS 和 Linux 平台上最主流的基于 Chromium 的浏览器及 Firefox,同时也支持 macOS 上的 Safari。
该工具还支持跨设备、跨操作系统进行数据解密:在源主机上导出主密钥,然后在任意其他主机上对数据副本进行离线解密——即使分析主机上的操作系统无法运行该浏览器也能完成解密(参见跨主机解密)。
免责声明:此工具仅供安全研究使用。用户须自行承担因使用本工具而产生的一切法律及相关责任。原开发者不承担任何法律责任。
支持的数据类型
| 类别 | 基于 Chromium | Firefox | Safari |
|---|---|---|---|
| 密码 | ✅ | ✅ | ✅ |
| Cookie | ✅ | ✅ | ✅ |
| 书签 | ✅ | ✅ | ✅ |
| 历史记录 | ✅ | ✅ | ✅ |
| 下载记录 | ✅ | ✅ | ✅ |
| 信用卡信息 | ✅ | - | - |
| 扩展程序 | ✅ | ✅ | ✅ |
| LocalStorage | ✅ | ✅ | ✅ |
| SessionStorage | ✅ | - | - |
支持的浏览器
在 macOS 上,部分基于 Chromium 的浏览器需要输入当前用户密码才能解密。
在 macOS 26.4 或更高版本上,密码解密可能会失败。
| 浏览器 | Windows | macOS | Linux |
|---|---|---|---|
| Chrome | ✅² | ✅ | ✅ |
| Chrome Beta | ✅² | ✅ | ✅ |
| Chromium | ✅ | ✅ | ✅ |
| Edge | ✅² | ✅ | ✅ |
| Brave | ✅² | ✅ | ✅ |
| Opera | ✅ | ✅ | ✅ |
| OperaGX | ✅ | ✅ | - |
| Vivaldi | ✅ | ✅ | ✅ |
| Yandex | ✅ | ✅ | - |
| CocCoc | ✅² | ✅ | - |
| Arc | ✅ | ✅ | - |
| DuckDuckGo³ | ✅ | - | - |
| QQ³ | ✅ | - | - |
| 360 极速浏览器X³ | ✅ | - | - |
| 360 安全浏览器³ | ✅ | - | - |
| DC 浏览器³ | ✅ | - | - |
| 搜狗浏览器³ | ✅ | - | - |
| Firefox | ✅ | ✅ | ✅ |
| Safari¹ | - | ✅ | - |
¹ Safari 需要完全磁盘访问权限;如果提取结果为空,请在系统设置 → 隐私与安全性 → 完全磁盘访问权限中启用该权限。
² 在 Windows 上,解密 Chromium 127+ 的 Cookie(Chrome / Chrome Beta / Edge / Brave / CocCoc)需要通过
make build-windows构建的 App-Bound 加密负载 — 请参阅下文从源码构建。³ 这些浏览器仅随 Windows 发行,但其数据可在任何操作系统上解密:使用
archive拉取文件,使用dumpkeys导出密钥,然后在 macOS 或 Linux 上使用restore解密 — 请参阅跨主机解密。
快速入门
安装
HackBrowserData 的安装非常简单,只需下载适用于您系统的发行版并运行该二进制文件即可。
在某些情况下,此安全工具会被 Windows Defender 或其他防病毒软件视为病毒而无法执行。代码完全开源,您可以自行修改和编译。
从源码构建
需要 Go 1.20+ 或更高版本。
git clone https://github.com/moonD4rk/HackBrowserData
cd HackBrowserData
go build ./cmd/hack-browser-data/
跨平台构建
# For Windows (standard build, no Chromium 127+ ABE cookie support)
GOOS=windows GOARCH=amd64 go build ./cmd/hack-browser-data/
# For Linux
GOOS=linux GOARCH=amd64 go build ./cmd/hack-browser-data/
使用应用绑定加密的 Windows 构建(可选)
Chrome / Chrome Beta / Edge / Brave / CocCoc 127 及以上版本通过应用绑定加密(App-Bound Encryption)保护 Cookie。解密这些 Cookie 需要一个小型 C 语言载荷——Zig(0.13 及以上版本)是推荐的 C 工具链(Makefile 会调用 zig cc)。如果你绕过 make payload,也可以手动使用 MinGW-w64 gcc 来构建这些源码。
# 1. Install Zig
brew install zig # macOS
scoop install zig # Windows (scoop)
# or download from https://ziglang.org/download/
# 2. Build the payload (outputs crypto/windows/payload/abe_extractor_amd64.bin)
make payload
# 3. Build hack-browser-data.exe with the ABE payload embedded
make build-windows
生成的 hack-browser-data.exe 支持对 Chromium 127 及以上版本的完整 ABE cookie 解密。
使用方法
$ hack-browser-data -h
hack-browser-data decrypts and exports browser data from Chromium-based
browsers and Firefox on Windows, macOS, and Linux.
GitHub: https://github.com/moonD4rk/HackBrowserData
Usage:
hack-browser-data [flags]
hack-browser-data [command]
Available Commands:
archive Pack decryption-relevant profile files into a zip for cross-host restore
dump Extract and decrypt browser data (default command)
dumpkeys Export Chromium master keys as JSON for cross-host decryption
help Help about any command
list List detected browsers and profiles
restore Decrypt copied profile data using exported master keys
version Print version information
Flags:
-b, --browser string target browser: all|chrome|firefox|edge|... (default "all")
-c, --category string data categories (comma-separated): all|password,cookie,... (default "all")
-d, --dir string output directory (default "results")
-f, --format string output format: csv|json|cookie-editor (default "json")
-h, --help help for hack-browser-data
--keychain-pw string macOS keychain password
-p, --profile-path string custom profile dir path, get with chrome://version
-v, --verbose enable debug logging
--zip compress output to zip
Use "hack-browser-data [command] --help" for more information about a command.
dump — 提取并解密浏览器数据(默认)
运行 hack-browser-data 时若不指定子命令,默认执行 dump。
| 参数 | 简写 | 默认值 | 说明 |
|---|---|---|---|
--browser |
-b |
all |
目标浏览器(all|chrome|firefox|edge|...) |
--category |
-c |
all |
数据类别,逗号分隔(all|password|cookie|bookmark|history|download|creditcard|extension|localstorage|sessionstorage) |
--format |
-f |
json |
输出格式(csv|json|cookie-editor) |
--dir |
-d |
results |
输出目录 |
--profile-path |
-p |
自定义配置目录路径,可通过 chrome://version 获取 | |
--keychain-pw |
macOS 钥匙串密码 | ||
--zip |
false |
将输出压缩为 zip 文件 |
--format cookie-editor仅写入cookie,以符合 Cookie-Editor 浏览器扩展导入格式的 JSON 数组形式输出;非 cookie 类数据将被跳过。
跨主机解密
在分析主机上解密从不同源主机收集的浏览器数据——包括分析主机操作系统无法安装其引擎的浏览器(例如在 macOS 上解密搜狗或 QQ 浏览器数据)。无需将任何与平台绑定的内容(DPAPI、macOS 钥匙串、Chrome App-Bound 加密)移出源主机:主密钥仅需导出一次,解密即可完全离线基于数据副本进行。
该流程使用三个命令和两个可传输的产物:
| 步骤 | 主机 | 命令 | 生成物 |
|---|---|---|---|
| 1 | 源主机 | dumpkeys |
keys.json — 可移植的主密钥 |
| 2 | 源主机 | archive |
browser-data.zip — 仅包含解密所需的文件 |
| 3 | 分析主机 | restore |
解密后的输出(csv / json / cookie-editor) |
# On the origin host (any OS) — export the keys and pack the data
hack-browser-data dumpkeys -o keys.json
hack-browser-data archive -o browser-data.zip
# Copy keys.json + browser-data.zip to the analyst host, then decrypt offline
hack-browser-data restore --keys keys.json --data-zip browser-data.zip
keys.json包含明文主密钥,请务必妥善保管。dumpkeys -o会以0600权限写入该文件;更推荐通过安全通道直接传输,而非将其留在磁盘上。
dumpkeys - 导出主密钥,实现跨主机解密
在源主机上解析各 Chromium 浏览器的安装主密钥,并以 JSON 格式输出(Firefox / Safari 无便携密钥,故跳过)。默认输出到标准输出,便于通过 SSH 管道传输。
| 参数 | 简写 | 默认值 | 说明 |
|---|---|---|---|
--browser |
-b |
all |
目标浏览器(all|chrome|edge|...) |
--output |
-o |
stdout | 输出文件(以 0600 权限写入);省略时输出到标准输出 |
--keychain-pw |
macOS 钥匙串密码 |
archive - 打包解密所需文件,便于传输
仅收集恢复操作实际需要的文件(cookies、登录数据、历史记录等),并通过与提取时相同的锁定文件绕过机制读取,确保在 Windows 上也能安全读取正在使用的 SQLite 文件。压缩包内目录结构为 <browser-key>/<User Data 布局>,因此一个归档可同时容纳多个浏览器,恢复时也不会产生歧义。条目名称一律使用正斜杠,故 Windows 生成的归档可在 macOS / Linux 上正常恢复。
| 参数 | 简写 | 默认值 | 说明 |
|---|---|---|---|
--browser |
-b |
all |
目标浏览器(all|chrome|edge|...) |
--category |
-c |
all |
数据类别,逗号分隔 |
--output |
-o |
browser-data.zip |
输出归档路径 |
restore - 使用导出的密钥解密复制的数据
直接从 keys.json 重建各 Chromium 引擎并解密所提供的数据,全程不查询分析者本机的浏览器表,因此可恢复的浏览器范围完全取决于 keys.json 中含有的保险库。提供数据的方式有两种(且必须且只能选择一种):
--data-zip— 由archive生成的压缩包;解压至临时目录,使用后即自动删除。--data-dir— 指定目录。可以是archive布局(<browser-key>/...,同时支持多个浏览器),也可以是手动复制的单个浏览器的User Data根目录——该方式仅适用于单个浏览器,故需配合-b使用。
-b 是可选过滤器,用于筛选 dump 中的保险库,而非必选选择器。
| 参数 | 简写 | 默认值 | 说明 |
|---|---|---|---|
--keys |
必填 | dumpkeys 生成的密钥文件(使用 - 表示从标准输入读取) |
|
--data-zip |
archive 生成的压缩包(与 --data-dir 互斥) |
||
--data-dir |
复制的数据目录(与 --data-zip 互斥) |
||
--browser |
-b |
仅恢复指定浏览器;须与 --keys 中的某个保险库匹配 |
|
--category |
-c |
all |
数据类别,逗号分隔 |
--format |
-f |
json |
输出格式(csv|json|cookie-editor) |
--dir |
-d |
results |
输出目录 |
--zip |
false |
将输出压缩为 zip 格式 |
跨主机示例
# Stream keys over SSH (no keys.json on disk), data copied separately
ssh origin "hack-browser-data dumpkeys" | \
hack-browser-data restore --keys - --data-zip browser-data.zip
# Restore one browser from a hand-copied User Data folder (no archive)
hack-browser-data restore --keys keys.json --data-dir ./chrome-userdata -b chrome
list - 列出检测到的浏览器及其配置文件
| 参数 | 默认值 | 描述 |
|---|---|---|
--detail |
false |
显示各类别下的条目数量详情 |
version - 输出版本信息
hack-browser-data version
全局标志
| 标志 | 简写 | 说明 |
|---|---|---|
--verbose |
-v |
启用调试日志 |
示例
# Extract all data from all browsers (default)
hack-browser-data
# Extract specific browser and categories
hack-browser-data dump -b chrome -c password,cookie
# Export in CSV format to a custom directory (JSON is the default)
hack-browser-data dump -b chrome -f csv -d output
# Export cookies in CookieEditor format
hack-browser-data dump -f cookie-editor
# Compress output to zip
hack-browser-data dump --zip
# List detected browsers and profiles
hack-browser-data list
# List with per-category entry counts
hack-browser-data list --detail
# Use custom profile path
hack-browser-data dump -b chrome -p "/path/to/User Data/Default"
参与贡献
我们欢迎并感谢社区的任何贡献(GitHub issue / pull request、邮件反馈等)。
请在贡献之前查阅贡献指南。
贡献者
随时间变化的星标趋势
404StarLink 2.0 - Galaxy
HackBrowserData 是 404Team StarLink-Galaxy 项目的一部分,如果您对 HackBrowserData 有任何疑问,或希望寻找合作伙伴进行交流,请参阅 Starlink 社区。

JetBrains 操作系统许可证
HackBrowserData 一直在 JetBrains s.r.o. 授予的 免费 JetBrains 开源许可证 下使用 GoLand IDE 进行开发,在此谨致以诚挚的谢意。
