feat: support extension for firefox

This commit is contained in:
ᴍᴏᴏɴD4ʀᴋ
2022-04-30 00:37:23 +08:00
parent 26de1075ee
commit 353503f90f
5 changed files with 32 additions and 5 deletions
+1 -1
View File
@@ -29,7 +29,7 @@ func Execute() {
Name: "hack-browser-data",
Usage: "Export passwords/cookies/history/bookmarks from browser",
UsageText: "[hack-browser-data -b chrome -f json -dir results -cc]\nExport all browingdata(password/cookie/history/bookmark) from browser\nGithub Link: https://github.com/moonD4rk/HackBrowserData",
Version: "0.4.1",
Version: "0.4.2",
Flags: []cli.Flag{
&cli.BoolFlag{Name: "verbose", Aliases: []string{"vv"}, Destination: &verbose, Value: false, Usage: "verbose"},
&cli.BoolFlag{Name: "compress", Aliases: []string{"zip"}, Destination: &compress, Value: false, Usage: "compress result to zip"},
+2
View File
@@ -97,6 +97,8 @@ func (d *Data) addSource(Sources []item.Item) {
d.sources[source] = &download.FirefoxDownload{}
case item.FirefoxLocalStorage:
d.sources[source] = &localstorage.FirefoxLocalStorage{}
case item.FirefoxExtension:
d.sources[source] = &extension.FirefoxExtension{}
}
}
}
@@ -49,3 +49,27 @@ func (c *ChromiumExtension) Parse(masterKey []byte) error {
func (c *ChromiumExtension) Name() string {
return "extension"
}
type FirefoxExtension []*extension
func (f *FirefoxExtension) Parse(masterKey []byte) error {
s, err := fileutil.ReadFile(item.TempFirefoxExtension)
if err != nil {
return err
}
defer os.Remove(item.TempFirefoxExtension)
j := gjson.Parse(s)
for _, v := range j.Get("addons").Array() {
*f = append(*f, &extension{
Name: v.Get("defaultLocale.name").String(),
Description: v.Get("defaultLocale.description").String(),
Version: v.Get("version").String(),
HomepageURL: v.Get("defaultLocale.homepageURL").String(),
})
}
return nil
}
func (f *FirefoxExtension) Name() string {
return "extension"
}
+2 -1
View File
@@ -20,6 +20,7 @@ const (
fileFirefoxPassword = "logins.json"
fileFirefoxData = "places.sqlite"
fileFirefoxLocalStorage = "webappsstore.sqlite"
fileFirefoxExtension = "extensions.json"
)
const (
@@ -49,5 +50,5 @@ const (
TempFirefoxDownload = "firefoxDownload"
TempFirefoxLocalStorage = "firefoxLocalStorage"
TempFirefoxCreditCard = ""
TempFirefoxExtension = ""
TempFirefoxExtension = "firefoxExtension"
)
+3 -3
View File
@@ -63,11 +63,11 @@ func (i Item) FileName() string {
return fileFirefoxData
case FirefoxLocalStorage:
return fileFirefoxLocalStorage
case FirefoxCreditCard:
return UnsupportedItem
case FirefoxHistory:
return fileFirefoxData
case FirefoxExtension:
return fileFirefoxExtension
case FirefoxCreditCard:
return UnsupportedItem
default:
return UnknownItem
@@ -115,7 +115,7 @@ func (i Item) String() string {
case FirefoxCreditCard:
return UnsupportedItem
case FirefoxExtension:
return UnsupportedItem
return TempFirefoxExtension
default:
return UnknownItem
}