Commit Graph
535 Commits
Author SHA1 Message Date
moond4rk-ci[bot] b0f53e5d9f chore: update contributors list (#644)
Co-authored-by: moond4rk-ci[bot] <299850723+moond4rk-ci[bot]@users.noreply.github.com>
2026-09-25 05:44:29 +00:00
Daniel Uptain 3b83bc7e3a fix(make): detect cmd.exe shell for native Windows ABE builds (#642)
* fix(make): detect cmd.exe shell for native Windows ABE builds
* Fix build command syntax in Makefile for Windows
2026-09-25 13:42:16 +08:00
moond4rk-ci[bot] 0503d04d7a chore: update contributors list (#641)
Co-authored-by: moond4rk-ci[bot] <299850723+moond4rk-ci[bot]@users.noreply.github.com>
2026-09-01 01:34:30 +00:00
moond4rk-ci[bot] 46c6e4b4a9 chore: update contributors list (#640)
Co-authored-by: moond4rk-ci[bot] <299850723+moond4rk-ci[bot]@users.noreply.github.com>
2026-08-25 07:56:16 +00:00
slimwang 8c89ac72dd fix(windows): harden the ABE payload injection lifecycle (#638)
* fix(windows): harden the ABE payload injection lifecycle

The browser main thread is never resumed, so no window appears and the temp user-data-dir is unnecessary. Payload memory is RW then RX, with an explicit FlushInstructionCache before the remote thread executes it.

* test(windows): use US spelling in offset test

* fix(windows): validate bootstrap parameter encoding
2026-08-25 15:53:57 +08:00
moond4rk-ci[bot] da18dbc29f chore: update contributors list (#639)
Co-authored-by: moond4rk-ci[bot] <299850723+moond4rk-ci[bot]@users.noreply.github.com>
2026-08-25 03:14:44 +00:00
slimwang d2b2955d6c feat(chromium): extract passwords from the account-synced store (#637)
Chromium keeps account-synced credentials in a separate "Login Data For Account" DB. Entries carry a Store field because the same credential can legitimately exist in both stores.
2026-08-25 11:13:10 +08:00
dependabot[bot] 9624e50a4f chore(deps): bump github.com/stretchr/testify from 1.11.1 to 1.12.1 (#636)
Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.11.1 to 1.12.1.
- [Release notes](https://github.com/stretchr/testify/releases)
- [Commits](https://github.com/stretchr/testify/compare/v1.11.1...v1.12.1)

---
updated-dependencies:
- dependency-name: github.com/stretchr/testify
  dependency-version: 1.12.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-21 11:35:36 +08:00
moond4rk-ci[bot] 0f6a529470 chore: update contributors list (#634)
Co-authored-by: moond4rk-ci[bot] <299850723+moond4rk-ci[bot]@users.noreply.github.com>
2026-08-17 02:41:45 +00:00
David Rogers adfb6d993e feat(log): add SetLevel to control default logger verbosity (#632) 2026-08-17 10:39:46 +08:00
moond4rk-ci[bot] fa3eb17cd4 chore: update contributors list (#631)
Co-authored-by: moond4rk-ci[bot] <299850723+moond4rk-ci[bot]@users.noreply.github.com>
2026-08-07 02:26:37 +00:00
David Rogers 500c95c86c refactor(darwin): make keychain gcore dump opt-in via build tag (#629)
Mirror the abe_embed treatment of the Windows ABE payload (#575) for the
macOS CVE-2025-24204 securityd-dump path: retag gcoredump_darwin.go under
'darwin && keychain_gcore' and add a 'darwin && !keychain_gcore' stub for
DecryptKeychainRecords. The default go build (and library consumers) then
ship without the exploit code or its byte signatures; the capability is
opt-in via -tags keychain_gcore, exactly like -tags abe_embed.

GcoredumpRetriever already treats a DecryptKeychainRecords error as a silent
fallthrough to the next tier, so the default build falls through to the
native security-CLI path with no behavior change.
2026-08-07 10:25:04 +08:00
moond4rk-ci[bot] 4cbf7f800d chore: update contributors list (#630)
Co-authored-by: moond4rk-ci[bot] <299850723+moond4rk-ci[bot]@users.noreply.github.com>
2026-08-07 02:16:13 +00:00
freddy77 18d841f68f feat: Add support for sameSite field (#628)
Recent browsers (and HTTP) added "sameSite" setting to limit cross site attacks.
Add support for exporting this property from Firefox and Chrome and to export to csv and cookie-editor format.
Also extract new "session" and "hostOnly" properties for cookie-editor format.
Tested on Firefox, Chrome and Chromium.

Signed-off-by: Frediano Ziglio <freddy77@gmail.com>
2026-08-07 10:14:40 +08:00
Roger df20f73b7a ci: auto-merge the generated contributors PR (#627)
Without it the bot PR sits until a human clicks merge, and every later push to main opens another duplicate — the action mints a fresh branch and PR each run with no dedup.
2026-08-02 20:57:51 +08:00
moond4rk-ci[bot] eed9d9986b chore: update contributors list (#626)
Co-authored-by: moond4rk-ci[bot] <299850723+moond4rk-ci[bot]@users.noreply.github.com>
2026-08-02 20:56:22 +08:00
Roger 168312f15f ci: open a PR for contributor updates instead of pushing to main (#625)
The shared app is not in the main ruleset's bypass list, so its direct push is rejected; the skip-ci marker has to go too, or the generated PR's required checks never report and it can never merge.

Claude-Session: https://claude.ai/code/session_011GzPywfeNAx2BVA2M6RnuH
2026-08-02 20:39:17 +08:00
dependabot[bot]andRoger 15dc56e3aa chore(deps): bump github.com/moond4rk/keychainbreaker (#621)
Bumps [github.com/moond4rk/keychainbreaker](https://github.com/moond4rk/keychainbreaker) from 0.2.5 to 0.2.6.
- [Release notes](https://github.com/moond4rk/keychainbreaker/releases)
- [Commits](https://github.com/moond4rk/keychainbreaker/compare/v0.2.5...v0.2.6)

---
updated-dependencies:
- dependency-name: github.com/moond4rk/keychainbreaker
  dependency-version: 0.2.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Roger <moond4rk13@gmail.com>
2026-08-02 18:18:24 +08:00
mybonesaremorepowerful92andmybonesaremorepowerful92 a4972d32fc feat: add support for Browser from Vought (#622)
* feat: add support for Browser from Vought

* fix incorrect var name

---------

Co-authored-by: mybonesaremorepowerful92 <308560070+mybonesaremorepowerful92@users.noreply.github.com>
2026-08-02 18:12:57 +08:00
dependabot[bot] 950161c8ba chore(deps): bump actions/setup-go from 6 to 7 (#624) 2026-08-02 01:05:23 +08:00
Roger 6502d5ee14 ci: unify bot automation on the shared GitHub App (#619)
* ci: unify bot automation on the shared GitHub App

Point contributors.yml at the shared app via client-id (was the old hackbrowserdata-bot app), and replace the long-lived Homebrew PAT with a short-lived app token scoped to homebrew-tap for the formula push.

* ci: mint homebrew-tap token only in release mode
2026-07-06 00:16:39 +08:00
dependabot[bot]andRoger eb98596d01 chore(deps): bump codecov/codecov-action from 6 to 7 (#618)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 6 to 7.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v6...v7)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Roger <moond4rk13@gmail.com>
2026-07-05 00:53:33 +08:00
dependabot[bot] 29561b23e6 chore(deps): bump actions/checkout from 6 to 7 (#617) 2026-07-03 01:11:11 +08:00
Roger 2860bb82f9 docs: cross-host decryption guide and comment cleanup (#614)
* docs(readme): document cross-host decryption workflow

* docs: drop RFC citations and what-comments
v1.1.0
2026-06-13 21:17:00 +08:00
dependabot[bot]andRoger dc610d3c63 chore(deps): bump github.com/moond4rk/binarycookies from 1.0.2 to 1.0.3 (#613)
Bumps [github.com/moond4rk/binarycookies](https://github.com/moond4rk/binarycookies) from 1.0.2 to 1.0.3.
- [Release notes](https://github.com/moond4rk/binarycookies/releases)
- [Commits](https://github.com/moond4rk/binarycookies/compare/v1.0.2...v1.0.3)

---
updated-dependencies:
- dependency-name: github.com/moond4rk/binarycookies
  dependency-version: 1.0.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Roger <moond4rk13@gmail.com>
2026-06-12 20:56:01 +08:00
Roger bf96ba8c80 feat(restore): cross-platform restore via dump engine rebuild (#606) (#611)
* feat(restore): cross-platform restore via dump engine rebuild (#606)

Restore previously required the dump's origin OS, overlaying keys onto locally-discovered browsers. It now rebuilds Chromium engines from the dump's vaults (v2 adds engine kind), so copied data or an archive zip decrypts on any OS.

* fix(restore): polish help text, drop dead check, dedup dump kinds

pflag treats backticked words in flag usage as the value placeholder,
so --data-zip rendered as "--data-zip archive" in help output.
2026-06-12 20:53:00 +08:00
dependabot[bot] 8d8bd81790 chore(deps): bump github.com/moond4rk/plist from 1.2.1 to 1.2.2 (#612)
Bumps [github.com/moond4rk/plist](https://github.com/moond4rk/plist) from 1.2.1 to 1.2.2.
- [Release notes](https://github.com/moond4rk/plist/releases)
- [Commits](https://github.com/moond4rk/plist/compare/v1.2.1...v1.2.2)

---
updated-dependencies:
- dependency-name: github.com/moond4rk/plist
  dependency-version: 1.2.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-12 10:28:23 +08:00
Roger cd0b2daaf3 feat(cli): add archive command for cross-host data transport (#610)
* feat(cli): add archive command for cross-host data transport
* fix(archive): correct flat-layout path and entry-count wording
* refactor(archive): rename BuildArchive to WriteArchive
2026-06-07 15:58:33 +08:00
hackbrowserdata-bot[bot] f1219e49ab chore: update contributors list [skip ci] 2026-06-06 06:34:49 +00:00
Roger 8936c42d10 refactor(cli): flatten keys export/import into dumpkeys/restore (#608)
* refactor(cli): flatten keys export/import into dumpkeys/restore

The keys noun-group clashed with the flat dump/list verbs; unify on flat verbs and drop the keys parent. Pure rename, no behavior change.

* docs(rfc): add RFC-013 CLI redesign & cross-host restore

The accepted design doc for the flat-verb CLI redesign and cross-platform restore.
2026-06-06 14:34:40 +08:00
hackbrowserdata-bot[bot] 9fa709a11e chore: update contributors list [skip ci] 2026-06-05 02:33:45 +00:00
dependabot[bot] 8bd7c4ebeb chore(deps): bump github.com/moond4rk/plist from 1.2.0 to 1.2.1 (#609) 2026-06-05 10:33:35 +08:00
hackbrowserdata-bot[bot] a31d1abecf chore: update contributors list [skip ci] 2026-06-03 11:35:53 +00:00
Roger 2666b813cd feat: decrypt Chromium v10/v11 across host OS (#605) 2026-06-03 19:35:40 +08:00
Roger c444314832 refactor: extract master-key code into masterkey package (#604) 2026-06-01 16:08:32 +08:00
Roger b901f7dff0 refactor(browser): split installation and profile abstractions (#603)
* refactor(browser): split installation and profile abstractions

A Chromium installation shares one master key across its profiles, but
modeling each profile as its own Browser re-derived the key per profile.
Browser now represents one installation holding its profiles and derives
the key once; new types.Profile/ExtractResult/CountResult carry per-profile
results.

* style: gofumpt safari_test.go

* test(chromium): rename shadowed loop var to path
2026-05-31 16:37:23 +08:00
Roger d5dc81f1c0 feat(keys): add keys import subcommand (#601) 2026-05-24 20:41:30 +08:00
Roger b468c5d0dc feat(keys): add --keys flag to dump for cross-host decryption (#600)
* feat(keys): add --keys flag to dump for cross-host decryption

Consumer side of the cross-host key workflow (pairs with #599).
ApplyDump wires StaticProviders from a dump.json into matching
browsers, so dump --keys f.json -p /copied/data decrypts without
native retrievers.

* fix(keys): guard --keys against misuse + hint Safari

Without -p, dumped keys would be applied to local profile data and
decrypt to garbage; -b all hits the same path because pickFromConfigs
ignores -p when name == "all". Require both.

* chore(keys): address PR #600 Copilot review

- example: add -b chrome (without it, --keys + default -b all errors out)
- use %q for keysPath in error wrap, matching surrounding style
2026-05-23 21:44:57 +08:00
Roger 0fe35542f2 feat(keys): add cross-host master key export (#599) 2026-05-16 20:24:19 +08:00
Roger 0234f75495 refactor(chromium): isolate Yandex protocol specifics design (#598) 2026-05-16 14:46:18 +08:00
Roger 00be145044 refactor(browser): publicize key-injection capability api (#597)
Promote keyRetrieversSetter to public KeyManager and lift
keychainPasswordSetter from browser_darwin.go into browser.go as
KeychainPasswordReceiver. Engines already implement these methods;
only type-assertion sites switch to the public interface names.
2026-05-16 12:26:57 +08:00
Roger f8bd391923 chore(deps): pin gjson below v1.19.0 (#595)
v1.19.0 bumps go.mod to go 1.23; project pinned to go 1.20.
2026-05-15 10:36:03 +08:00
Roger ecf8ba0585 refactor(browser): simplify credential storage config (#593) 2026-05-14 16:29:35 +08:00
dependabot[bot] 5d67d3c303 chore(deps): bump actions/upload-artifact from 4 to 7 (#592)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4 to 7.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v4...v7)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-02 12:35:59 +08:00
Roger 439ff52b02 fix(windows): silent default dump on double-click (#591) v1.0.0 2026-04-27 14:47:59 +08:00
Roger 5c0b1ad5cf ci(release): integrate Windows ABE payload into goreleaser (#590) 2026-04-26 22:53:42 +08:00
Roger 15680c1512 refactor(keyretriever): reduce duplicate master-key WARN logs (#589) 2026-04-25 22:00:33 +08:00
Roger 50c4ea84cb fix(time): correct export data timestamp conversions (#586) 2026-04-23 20:39:56 +08:00
Roger 0c6c781567 feat(yandex): password and credit card decryption (#585) 2026-04-23 17:00:09 +08:00
Roger 7e64d50891 docs(readme): reflect Safari, Windows ABE support (#584)
* docs(readme): reflect Safari, Windows ABE, and DuckDuckGo support
* docs(readme): name the ABE build output as hack-browser-data.exe
* docs(readme): address review feedback on ABE browsers and FDA wording
2026-04-22 02:47:56 +08:00