HackBrowserData README

The project's README from github.com/moonD4rk/HackBrowserData. As one markdown file: README.md.

hack-browser-data logo

HackBrowserData

Lint Build Release Tests codecov

HackBrowserData is a command-line tool for decrypting and exporting browser data (passwords, history, cookies, bookmarks, credit cards, download history, localStorage, sessionStorage and extensions) from the browser. It supports the most popular Chromium-based browsers and Firefox on Windows, macOS and Linux, plus Safari on macOS.

It can also decrypt data across machines and operating systems: export the master keys on the origin host, then decrypt a copy of the data offline on any other host — even for a browser that the analyst host's OS cannot run (see Cross-host decryption).

Disclaimer: This tool is only intended for security research. Users are responsible for all legal and related liabilities resulting from the use of this tool. The original author does not assume any legal responsibility.

Supported Data Categories

Category Chromium-based Firefox Safari
Password ✅ ✅ ✅
Cookie ✅ ✅ ✅
Bookmark ✅ ✅ ✅
History ✅ ✅ ✅
Download ✅ ✅ ✅
Credit Card ✅ - -
Extension ✅ ✅ ✅
LocalStorage ✅ ✅ ✅
SessionStorage ✅ - -

Supported Browsers

On macOS, some Chromium-based browsers require a current user password to decrypt.

Password decryption may fail on macOS 26.4 or later.

Browser Windows macOS Linux
Chrome ✅² ✅ ✅
Chrome Beta ✅² ✅ ✅
Chromium ✅ ✅ ✅
Edge ✅² ✅ ✅
Brave ✅² ✅ ✅
Opera ✅ ✅ ✅
OperaGX ✅ ✅ -
Vivaldi ✅ ✅ ✅
Yandex ✅ ✅ -
CocCoc ✅² ✅ -
Arc ✅ ✅ -
DuckDuckGo³ ✅ - -
QQ³ ✅ - -
360 ChromeX³ ✅ - -
360 Chrome³ ✅ - -
DC Browser³ ✅ - -
Sogou Explorer³ ✅ - -
Firefox ✅ ✅ ✅
Safari¹ - ✅ -

¹ Safari requires Full Disk Access; enable it in System Settings → Privacy & Security → Full Disk Access if extraction returns empty results.

² On Windows, decrypting Chromium 127+ cookies (Chrome / Chrome Beta / Edge / Brave / CocCoc) requires the App-Bound Encryption payload built via make build-windows — see Building from source below.

³ These browsers ship only on Windows, but their data is decryptable on any OS: pull the files with archive, export the keys with dumpkeys, then decrypt on macOS or Linux with restore — see Cross-host decryption.

Getting Started

Install

Installation of HackBrowserData is dead-simple, just download the release for your system and run the binary.

In some situations, this security tool will be treated as a virus by Windows Defender or other antivirus software and can not be executed. The code is all open source, you can modify and compile by yourself.

Building from source

Requires Go 1.20+.

git clone https://github.com/moonD4rk/HackBrowserData
cd HackBrowserData
go build ./cmd/hack-browser-data/

Cross-platform build

# 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 build with App-Bound Encryption (optional)

Chrome / Chrome Beta / Edge / Brave / CocCoc 127+ protect cookies with App-Bound Encryption. Decrypting those cookies requires a small C payload — Zig (0.13+) is the recommended C toolchain (the Makefile calls zig cc). MinGW-w64 gcc can also build the sources manually if you bypass make payload.

# 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

The resulting hack-browser-data.exe includes full ABE cookie decryption on Chromium 127+.

Usage

$ 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 - Extract and decrypt browser data (default)

Running hack-browser-data without a subcommand defaults to dump.

Flag Short Default Description
--browser -b all Target browser (all|chrome|firefox|edge|...)
--category -c all Data categories, comma-separated (all|password|cookie|bookmark|history|download|creditcard|extension|localstorage|sessionstorage)
--format -f json Output format (csv|json|cookie-editor)
--dir -d results Output directory
--profile-path -p Custom profile dir path, get with chrome://version
--keychain-pw macOS keychain password
--zip false Compress output to zip

--format cookie-editor writes only cookies, as a JSON array matching the Cookie-Editor browser extension's import format; non-cookie categories are skipped.

Cross-host decryption

Decrypt browser data on an analyst host that was collected on a different origin host — including a browser whose engine the analyst's OS cannot even install (e.g. decrypt Sogou or QQ Browser data on macOS). Nothing platform-bound (DPAPI, macOS Keychain, Chrome App-Bound Encryption) has to leave the origin: the master keys are exported once, and decryption then runs entirely offline from a copy of the data.

The workflow uses three commands and two transportable artifacts:

Step Host Command Produces
1 origin dumpkeys keys.json — portable master keys
2 origin archive browser-data.zip — only the files needed to decrypt
3 analyst restore decrypted output (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 contains plaintext master keys — treat it as a secret. dumpkeys -o writes it with 0600 permissions; prefer streaming it over a secure channel instead of leaving it on disk.

dumpkeys - Export master keys for cross-host decryption

Derives each Chromium installation's master keys on the origin host and writes them as JSON (Firefox / Safari have no portable key and are skipped). Defaults to stdout so it can be piped over SSH.

Flag Short Default Description
--browser -b all Target browser (all|chrome|edge|...)
--output -o stdout Output file (written 0600); stdout if omitted
--keychain-pw macOS keychain password

archive - Pack decryption-relevant files for transport

Collects only the files a restore actually needs (cookies, login data, history, …) through the same locked-file bypass used for extraction, so live SQLite files are read safely on Windows. The zip is laid out as <browser-key>/<User Data layout>, so one archive can carry several browsers and restore stays unambiguous. Entry names are always forward-slash, so a Windows-produced archive restores on macOS / Linux.

Flag Short Default Description
--browser -b all Target browser (all|chrome|edge|...)
--category -c all Data categories, comma-separated
--output -o browser-data.zip Output archive path

restore - Decrypt copied data with exported keys

Rebuilds each Chromium engine straight from keys.json and decrypts the supplied data — it never consults the analyst's local browser table, so the browsers you can restore are exactly the vaults in your keys.json. Supply the data one of two ways (exactly one is required):

-b is an optional filter over the dump's vaults, not a required selector.

Flag Short Default Description
--keys required Keys file from dumpkeys (use - for stdin)
--data-zip Zip from archive (mutually exclusive with --data-dir)
--data-dir Copied data dir (mutually exclusive with --data-zip)
--browser -b Restore only this browser; must match a vault in --keys
--category -c all Data categories, comma-separated
--format -f json Output format (csv|json|cookie-editor)
--dir -d results Output directory
--zip false Compress output to zip

Cross-host examples

# 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 - List detected browsers and profiles

Flag Default Description
--detail false Show per-category entry counts

version - Print version information

hack-browser-data version

Global flags

Flag Short Description
--verbose -v Enable debug logging

Examples

# 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"

Contributing

We welcome and appreciate any contributions made by the community (GitHub issues/pull requests, email feedback, etc.).

Please see the Contribution Guide before contributing.

Contributors

moonD4rk
Roger
Aquilao
Aquilao Official
uinfziuna8n
uinfziuna8n
slimwang
slimwang
stevenlele
stevenlele
VMpc
Cyrus
camandel
Carlo Mandelli
drogers0
David Rogers
ac0d3r
zznQ
slark-yuxj
YuXJ
mybonesaremorepowerful92
mybonesaremorepowerful92
mirefly
mirefly
lc6464
LC
zhe6652
zhe6652
testwill
guoguangwu
freddy77
freddy77
BeichenDream
beichen
SantiiRepair
Santiago Ramirez
dexhek
Ciprian Conache
a-urth
a-urth
Amir-78
Amir.

Stargazers over time

Star History Chart

HackBrowserData is a part of 404Team StarLink-Galaxy, if you have any questions about HackBrowserData or want to find a partner to communicate with, please refer to the Starlink group.

JetBrains OS licenses

HackBrowserData had been being developed with GoLand IDE under the free JetBrains Open Source license(s) granted by JetBrains s.r.o., hence I would like to express my thanks here.

HackBrowserData (moonD4rk/HackBrowserData)

Searching Database…

这是干什么的?HackBrowserData 是一个命令行工具,可以从基于 Chromium 的浏览器、Firefox 和 Safari 中解密并导出浏览器数据——密码、Cookie、历史记录、书签、银行卡信息等等,专为安全研究打造。
这是图形界面程序,还是要在终端里运行?纯命令行工具,没有图形界面:不带任何参数运行 hack-browser-data 时,它会对检测到的所有浏览器执行默认的 'dump'(转储),像 --browser 和 --category 这样的参数可以缩小目标范围。
我怎么把它装到电脑上?下载适合你操作系统的发行版二进制文件直接运行即可——没有安装步骤,也不需要包管理器。
我需要先装 Go 或其他工具吗?运行它什么都不需要。从源码构建需要 Go 1.20+;在 Windows 上解密 Chrome/Edge/Brave 127+ 的 Cookie 还额外需要用 Zig(0.13+)或 MinGW-w64 编译的一个小型 C 载荷。
我的杀毒软件会拦截它吗?很可能会——Windows Defender 和其他杀毒软件可能把它当作病毒,拒绝运行。代码完全开源,遇到这种情况你可以自己审查并编译。
这是渗透测试人员的工具,普通用户也能用吗?它面向安全研究人员和渗透测试人员——免责声明写明它仅用于安全研究,使用者须自行承担使用方式带来的全部法律责任。
在完全断网的电脑上能用吗?能——提取和解密都是本地操作,跨主机工作流也是专门这样设计的:拿到数据副本后,解密可以在离线状态下完成。
它会偷偷联网上传数据,还是一切都在我电脑上?任何数据都不会离开你的电脑:它从磁盘读取浏览器的文件,把解密结果写到本地目录(默认是 ./results)。
我能在自己的项目里复用或修改这些代码吗?根据仓库元数据,它采用 MIT 许可证,代码完全开源——你可以自己修改并编译。
它能读取哪些浏览器?三种操作系统上都支持 Chrome、Chromium、Edge、Brave、Opera、OperaGX、Vivaldi、Yandex、CocCoc 和 Arc;DuckDuckGo、QQ、360 和搜狗浏览器仅限 Windows;Firefox 全平台支持;Safari 仅限 macOS。
它能从浏览器里导出哪些数据?在 Chromium、Firefox 和 Safari 上可以导出密码、Cookie、书签、历史记录、下载记录、扩展、localStorage 和 sessionStorage——银行卡信息只能从基于 Chromium 的浏览器导出。
跨主机解密是干什么用的?用于解密在另一台电脑上采集的数据:dumpkeys 导出可携带的主密钥,archive 把解密所需的文件打包成 zip,restore 在你自己的分析机上离线解密——即使你的操作系统装不了那个浏览器也行,比如在 macOS 上解密 QQ 浏览器的数据。
结果可以导出成什么格式?JSON 或 CSV,写入输出目录(--zip 可以压缩),另外还有一种 cookie-editor 格式,把 Cookie 导出为 JSON,可以直接导入 Cookie-Editor 浏览器扩展。
Creator
moonD4rk
Size
29.1 MB
Stars
14.6K
Age
6y
Commits · 90 Days