Skip to content

Commit a6c6f2d

Browse files
committed
fix: skip chromium snapshot dir to find right database
- Refactored variable names for clarity and consistency in multiple files - Updated logic to filter sensitive items based on a flag - Implemented a function to skip processing specific paths to improve performance
1 parent fc8a351 commit a6c6f2d

3 files changed

Lines changed: 24 additions & 16 deletions

File tree

browser/browser.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,13 +65,13 @@ func pickChromium(name, profile string) []Browser {
6565
if !fileutil.IsDirExists(filepath.Clean(profile)) {
6666
slog.Error("find browser failed, profile folder does not exist", "browser", c.name)
6767
}
68-
chromiumList, err := chromium.New(c.name, c.storage, profile, c.dataTypes)
68+
chromes, err := chromium.New(c.name, c.storage, profile, c.dataTypes)
6969
if err != nil {
7070
slog.Error("new chromium error", "err", err)
7171
}
72-
for _, b := range chromiumList {
73-
slog.Warn("find browser success", "browser", b.Name())
74-
browsers = append(browsers, b)
72+
for _, chrome := range chromes {
73+
slog.Warn("find browser success", "browser", chrome.Name())
74+
browsers = append(browsers, chrome)
7575
}
7676
}
7777
return browsers

browser/chromium/chromium.go

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"io/fs"
55
"log/slog"
66
"path/filepath"
7+
"slices"
78
"strings"
89

910
"github.com/moond4rk/hackbrowserdata/browserdata"
@@ -50,12 +51,16 @@ func (c *Chromium) Name() string {
5051
}
5152

5253
func (c *Chromium) BrowsingData(isFullExport bool) (*browserdata.BrowserData, error) {
53-
items := c.dataTypes
54+
// delete chromiumKey from dataTypes, doesn't need to export key
55+
dataTypes := slices.DeleteFunc(c.dataTypes, func(i types.DataType) bool {
56+
return i == types.ChromiumKey
57+
})
58+
5459
if !isFullExport {
55-
items = types.FilterSensitiveItems(c.dataTypes)
60+
dataTypes = types.FilterSensitiveItems(c.dataTypes)
5661
}
5762

58-
data := browserdata.New(items)
63+
data := browserdata.New(dataTypes)
5964

6065
if err := c.copyItemToLocal(); err != nil {
6166
return nil, err
@@ -107,10 +112,10 @@ func (c *Chromium) userDataTypePaths(profilePath string, items []types.DataType)
107112
}
108113
var keyPath string
109114
var dir string
110-
for userDir, v := range multiItemPaths {
111-
for _, p := range v {
112-
if strings.HasSuffix(p, types.ChromiumKey.Filename()) {
113-
keyPath = p
115+
for userDir, profiles := range multiItemPaths {
116+
for _, profile := range profiles {
117+
if strings.HasSuffix(profile, types.ChromiumKey.Filename()) {
118+
keyPath = profile
114119
dir = userDir
115120
break
116121
}
@@ -138,6 +143,9 @@ func chromiumWalkFunc(items []types.DataType, multiItemPaths map[string]map[type
138143
if strings.Contains(path, "System Profile") {
139144
continue
140145
}
146+
if strings.Contains(path, "Snapshot") {
147+
continue
148+
}
141149
profileFolder := fileutil.ParentBaseDir(path)
142150
if strings.Contains(filepath.ToSlash(path), "/Network/Cookies") {
143151
profileFolder = fileutil.BaseDir(strings.ReplaceAll(filepath.ToSlash(path), "/Network/Cookies", ""))

browser/firefox/firefox.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -160,12 +160,12 @@ func (f *Firefox) Name() string {
160160
}
161161

162162
func (f *Firefox) BrowsingData(isFullExport bool) (*browserdata.BrowserData, error) {
163-
items := f.items
163+
dataTypes := f.items
164164
if !isFullExport {
165-
items = types.FilterSensitiveItems(f.items)
165+
dataTypes = types.FilterSensitiveItems(f.items)
166166
}
167167

168-
b := browserdata.New(items)
168+
data := browserdata.New(dataTypes)
169169

170170
if err := f.copyItemToLocal(); err != nil {
171171
return nil, err
@@ -177,8 +177,8 @@ func (f *Firefox) BrowsingData(isFullExport bool) (*browserdata.BrowserData, err
177177
}
178178

179179
f.masterKey = masterKey
180-
if err := b.Recovery(f.masterKey); err != nil {
180+
if err := data.Recovery(f.masterKey); err != nil {
181181
return nil, err
182182
}
183-
return b, nil
183+
return data, nil
184184
}

0 commit comments

Comments
 (0)