mirror of
https://github.com/moonD4rk/HackBrowserData.git
synced 2026-07-04 21:37:47 +02:00
96ed041fa0
Bundles each browser's decryption-relevant files + Local State into a <browser-key>/<User Data> zip (forward-slash entries) for cross-host restore.
59 lines
1.6 KiB
Go
59 lines
1.6 KiB
Go
package chromium
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/moond4rk/hackbrowserdata/types"
|
|
)
|
|
|
|
func TestArchiveSources_ForwardSlashLayout(t *testing.T) {
|
|
udd := t.TempDir()
|
|
networkDir := filepath.Join(udd, "Default", "Network")
|
|
if err := os.MkdirAll(networkDir, 0o755); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if err := os.WriteFile(filepath.Join(udd, "Default", "Preferences"), []byte("{}"), 0o600); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if err := os.WriteFile(filepath.Join(networkDir, "Cookies"), []byte("x"), 0o600); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if err := os.WriteFile(filepath.Join(udd, "Local State"), []byte("{}"), 0o600); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
b, err := NewBrowser(types.BrowserConfig{Key: "chrome", Name: "chrome", Kind: types.Chromium, UserDataDir: udd})
|
|
if err != nil || b == nil {
|
|
t.Fatalf("NewBrowser: b=%v err=%v", b, err)
|
|
}
|
|
|
|
srcs := b.ArchiveSources([]types.Category{types.Cookie})
|
|
|
|
var gotCookie, gotMarker, gotLocalState bool
|
|
for _, s := range srcs {
|
|
if strings.Contains(s.LayoutRel, `\`) {
|
|
t.Errorf("LayoutRel must be forward-slash, got %q", s.LayoutRel)
|
|
}
|
|
switch s.LayoutRel {
|
|
case "Default/Network/Cookies":
|
|
gotCookie = true
|
|
case "Default/Preferences":
|
|
gotMarker = true
|
|
case "Local State":
|
|
gotLocalState = true
|
|
}
|
|
}
|
|
if !gotCookie {
|
|
t.Errorf("missing Cookies entry with layout path, got %+v", srcs)
|
|
}
|
|
if !gotMarker {
|
|
t.Errorf("missing Preferences marker entry (needed for restore profile discovery), got %+v", srcs)
|
|
}
|
|
if !gotLocalState {
|
|
t.Errorf("missing Local State entry (User Data root file), got %+v", srcs)
|
|
}
|
|
}
|