MCPcopy
hub / github.com/moonD4rk/HackBrowserData / BuildDump

Function BuildDump

browser/keydump.go:17–49  ·  view source on GitHub ↗

BuildDump exports one Vault per installation (Firefox/Safari, lacking KeyManager, are skipped). Partial results are kept — a Chrome 127+ profile mixes v10+v20, so a v20-only failure must not discard a usable v10 key.

(browsers []Browser)

Source from the content-addressed store, hash-verified

15// Partial results are kept — a Chrome 127+ profile mixes v10+v20, so a v20-only failure must not
16// discard a usable v10 key.
17func BuildDump(browsers []Browser) masterkey.Dump {
18 dump := masterkey.NewDump()
19 for _, b := range browsers {
20 km, ok := b.(KeyManager)
21 if !ok {
22 continue
23 }
24 mk, err := km.ExportKeys()
25 if err != nil {
26 status := "partial"
27 if !mk.HasAny() {
28 status = "failed"
29 }
30 log.Warnf("dump-keys: %s %s: %v", b.BrowserName(), status, err)
31 }
32 if !mk.HasAny() {
33 continue
34 }
35 kind, err := kindToDump(km.Kind())
36 if err != nil {
37 log.Warnf("dump-keys: %s: %v", b.BrowserName(), err)
38 continue
39 }
40 dump.Vaults = append(dump.Vaults, masterkey.Vault{
41 Browser: km.BrowserKey(),
42 Kind: kind,
43 UserDataDir: b.UserDataDir(),
44 Profiles: profileNames(b),
45 Keys: mk,
46 })
47 }
48 return dump
49}
50
51func profileNames(b Browser) []string {
52 profiles := b.Profiles()

Calls 10

NewDumpFunction · 0.92
WarnfFunction · 0.92
kindToDumpFunction · 0.85
profileNamesFunction · 0.85
HasAnyMethod · 0.80
ExportKeysMethod · 0.65
BrowserNameMethod · 0.65
KindMethod · 0.65
BrowserKeyMethod · 0.65
UserDataDirMethod · 0.65