Repository: moonD4rk/HackBrowserData
Stars: 13688
CLAUDE.md
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Security Notice
This project is for security research and defensive purposes only. Do not generate code that could be used for unauthorized access. All security research must be conducted ethically and within legal boundaries.
Project Overview
HackBrowserData is a CLI security research tool for extracting and decrypting browser data across Windows, macOS, and Linux. It supports Chromium-based browsers and Firefox.
Constraint: Must build with Go 1.20 (Windows 7 support). Do not use features from Go 1.21+ (e.g., log/slog, slices, maps, cmp packages).
Development Commands
Build (use [email protected] for module operations)
go build ./cmd/hack-browser-data/Cross-compile
GOOS=windows GOARCH=amd64 go build ./cmd/hack-browser-data/
GOOS=linux GOARCH=amd64 go build ./cmd/hack-browser-data/Test
go test ./...
go test -v ./... -covermode=count -coverprofile=coverage.outLint (requires golangci-lint v2)
golangci-lint runFormat (gofumpt is stricter than gofmt)
gofumpt -l -w .
goimports -w -local github.com/moond4rk/hackbrowserdata .Spelling
typosDependencies (MUST use [email protected] to avoid bumping go directive)
export GOROOT=$(brew --prefix [email protected])/libexec && export PATH=$GOROOT/bin:$PATH
go mod tidy
go mod verifyCode Conventions
- Platform code: use build tags (_darwin.go, _windows.go, _linux.go)
- Error handling: fmt.Errorf("context: %w", err) for wrapping, never _ = to ignore errors
- Logging: log.Debugf for record-level diagnostics, log.Infof for user-facing progress/status, log.Warnf for unexpected conditions. Extract methods should return errors, not log them.
- Naming: follow Go conventions — Config not BrowserConfig, Extract not BrowsingData
- Tests: use t.TempDir() for filesystem tests, go-sqlmock for database tests
- Architecture: see rfcs/ for design documents
Key Constraints
- modernc.org/sqlite pinned at v1.31.1 (v1.32+ requires Go 1.21)
- golang.org/x/text will be removed in refactoring (use 3-byte UTF-8 BOM instead)
- No pkg/ + internal/ directory structure — keep it simple
- No root-level library API — CLI calls browser.PickBrowsers() directly
README.md
<div align="center">
<img src="LOGO.png" alt="hack-browser-data logo" width="440px" />
</div>
HackBrowserData
    
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 browsers on the market and runs on Windows, macOS and Linux.
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 |
|:---------------|:--------------:|:-------:|
| 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.
| Browser | Windows | macOS | Linux |
|:---------------|:-------:|:-----:|:-----:|
| Chrome | ✅ | ✅ | ✅ |
| Chrome Beta | ✅ | ✅ | ✅ |
| Chromium | ✅ | ✅ | ✅ |
| Edge | ✅ | ✅ | ✅ |
| Brave | ✅ | ✅ | ✅ |
| Opera | ✅ | ✅ | ✅ |
| OperaGX | ✅ | ✅ | - |
| Vivaldi | ✅ | ✅ | ✅ |
| Yandex | ✅ | ✅ | - |
| CocCoc | ✅ | ✅ | - |
| Arc | - | ✅ | - |
| QQ | ✅ | - | - |
| 360 ChromeX | ✅ | - | - |
| 360 Chrome | ✅ | - | - |
| DC Browser | ✅ | - | - |
| Sogou Explorer | ✅ | - | - |
| Firefox | ✅ | ✅ | ✅ |
Getting Started
Install
Installation of HackBrowserData is dead-simple, just download the release for your system and run the binary.
You can also install via Homebrew:
brew install moonD4rk/tap/hack-browser-dataIn 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
GOOS=windows GOARCH=amd64 go build ./cmd/hack-browser-data/For Linux
GOOS=linux GOARCH=amd64 go build ./cmd/hack-browser-data/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:
dump Extract and decrypt browser data (default command)
help Help about any command
list List detected browsers and profiles
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 "csv")
-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 | csv | 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 |
list - List detected browsers and profiles
| Flag | Default | Description |
|------------|---------|--------------------------------|
| --detail | false | Show per-category entry counts |
version - Print version information
hack-browser-data versionGlobal flags
| Flag | Short | Description |
|-------------|-------|----------------------|
| --verbose | -v | Enable debug logging |
Examples
Extract all data from all browsers (default)
hack-browser-dataExtract specific browser and categories
hack-browser-data dump -b chrome -c password,cookieExport in JSON format to a custom directory
hack-browser-data dump -b chrome -f json -d outputExport cookies in CookieEditor format
hack-browser-data dump -f cookie-editorCompress output to zip
hack-browser-data dump --zipList detected browsers and profiles
hack-browser-data listList with per-category entry counts
hack-browser-data list --detailUse 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
<!-- readme: collaborators,contributors -start -->
<table>
<tbody>
<tr>
<td align="center">
<a href="https://github.com/moonD4rk">
<img src="https://avatars.githubusercontent.com/u/24284231?v=4" width="100;" alt="moonD4rk"/>
<br />
<sub><b>Roger</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/Aquilao">
<img src="https://avatars.githubusercontent.com/u/25531497?v=4" width="100;" alt="Aquilao"/>
<br />
<sub><b>Aquilao Official</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/uinfziuna8n">
<img src="https://avatars.githubusercontent.com/u/43719451?v=4" width="100;" alt="uinfziuna8n"/>
<br />
<sub><b>uinfziuna8n</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/VMpc">
<img src="https://avatars.githubusercontent.com/u/50967051?v=4" width="100;" alt="VMpc"/>
<br />
<sub><b>Cyrus</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/stevenlele">
<img src="https://avatars.githubusercontent.com/u/15964380?v=4" width="100;" alt="stevenlele"/>
<br />
<sub><b>stevenlele</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/camandel">
<img src="https://avatars.githubusercontent.com/u/5462153?v=4" width="100;" alt="camandel"/>
<br />
<sub><b>Carlo Mandelli</b></sub>
</a>
</td>
</tr>
<tr>
<td align="center">
<a href="https://github.com/slimwang">
<img src="https://avatars.githubusercontent.com/u/14370794?v=4" width="100;" alt="slimwang"/>
<br />
<sub><b>slimwang</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/Amir-78">
<img src="https://avatars.githubusercontent.com/u/68391526?v=4" width="100;" alt="Amir-78"/>
<br />
<sub><b>Amir.</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/a-urth">
<img src="https://avatars.githubusercontent.com/u/3456803?v=4" width="100;" alt="a-urth"/>
<br />
<sub><b>a-urth</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/dexhek">
<img src="https://avatars.githubusercontent.com/u/39654918?v=4" width="100;" alt="dexhek"/>
<br />
<sub><b>Ciprian Conache</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/SantiiRepair">
<img src="https://avatars.githubusercontent.com/u/94815926?v=4" width="100;" alt="SantiiRepair"/>
<br />
<sub><b>Santiago Ramirez</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/BeichenDream">
<img src="https://avatars.githubusercontent.com/u/43266206?v=4" width="100;" alt="BeichenDream"/>
<br />
<sub><b>beichen</b></sub>
</a>
</td>
</tr>
<tr>
<td align="center">
<a href="https://github.com/testwill">
<img src="https://avatars.githubusercontent.com/u/8717479?v=4" width="100;" alt="testwill"/>
<br />
<sub><b>guoguangwu</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/zhe6652">
<img src="https://avatars.githubusercontent.com/u/24725680?v=4" width="100;" alt="zhe6652"/>
<br />
<sub><b>zhe6652</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/lc6464">
<img src="https://avatars.githubusercontent.com/u/64722907?v=4" width="100;" alt="lc6464"/>
<br />
<sub><b>LC</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/mirefly">
<img src="https://avatars.githubusercontent.com/u/4984681?v=4" width="100;" alt="mirefly"/>
<br />
<sub><b>mirefly</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/slark-yuxj">
<img src="https://avatars.githubusercontent.com/u/95608083?v=4" width="100;" alt="slark-yuxj"/>
<br />
<sub><b>YuXJ</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/ac0d3r">
<img src="https://avatars.githubusercontent.com/u/26270009?v=4" width="100;" alt="ac0d3r"/>
<br />
<sub><b>zznQ</b></sub>
</a>
</td>
</tr>
<tbody>
</table>
<!-- readme: collaborators,contributors -end -->
Stargazers over time

404StarLink 2.0 - Galaxy
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.<a href="https://github.com/knownsec/404StarLink2.0-Galaxy" target="_blank"><img src="https://raw.githubusercontent.com/knownsec/404StarLink-Project/master/logo.png" align="middle"/></a>
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.<a href="https://www.jetbrains.com/?from=HackBrowserData" target="_blank"><img src="https://raw.githubusercontent.com/moonD4rk/staticfiles/master/picture/jetbrains-variant-4.png" width="256" align="middle"/></a>