You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
HackBrowserData/item/item.go

185 lines
4.0 KiB

package item
type Item int
const (
ChromiumKey Item = iota
ChromiumPassword
ChromiumCookie
ChromiumBookmark
ChromiumHistory
ChromiumDownload
ChromiumCreditCard
ChromiumLocalStorage
ChromiumExtension
YandexPassword
YandexCreditCard
FirefoxKey4
FirefoxPassword
FirefoxCookie
FirefoxBookmark
FirefoxHistory
FirefoxDownload
FirefoxCreditCard
FirefoxLocalStorage
FirefoxExtension
)
func (i Item) FileName() string {
switch i {
case ChromiumKey:
return fileChromiumKey
case ChromiumPassword:
return fileChromiumPassword
case ChromiumCookie:
return fileChromiumCookie
case ChromiumBookmark:
return fileChromiumBookmark
case ChromiumDownload:
return fileChromiumDownload
case ChromiumLocalStorage:
return fileChromiumLocalStorage
case ChromiumCreditCard:
return fileChromiumCredit
case ChromiumExtension:
return fileChromiumExtension
case ChromiumHistory:
return fileChromiumHistory
case YandexPassword:
return fileYandexPassword
case YandexCreditCard:
return fileYandexCredit
case FirefoxKey4:
return fileFirefoxKey4
case FirefoxPassword:
return fileFirefoxPassword
case FirefoxCookie:
return fileFirefoxCookie
case FirefoxBookmark:
return fileFirefoxData
case FirefoxDownload:
return fileFirefoxData
case FirefoxLocalStorage:
return fileFirefoxLocalStorage
case FirefoxHistory:
return fileFirefoxData
case FirefoxExtension:
return fileFirefoxExtension
case FirefoxCreditCard:
return UnsupportedItem
default:
return UnknownItem
}
}
func (i Item) String() string {
switch i {
case ChromiumKey:
return TempChromiumKey
case ChromiumPassword:
return TempChromiumPassword
case ChromiumCookie:
return TempChromiumCookie
case ChromiumBookmark:
return TempChromiumBookmark
case ChromiumDownload:
return TempChromiumDownload
case ChromiumLocalStorage:
return TempChromiumLocalStorage
case ChromiumCreditCard:
return TempChromiumCreditCard
case ChromiumExtension:
return TempChromiumExtension
case ChromiumHistory:
return TempChromiumHistory
case YandexPassword:
return TempYandexPassword
case YandexCreditCard:
return TempYandexCreditCard
case FirefoxKey4:
return TempFirefoxKey4
case FirefoxPassword:
return TempFirefoxPassword
case FirefoxCookie:
return TempFirefoxCookie
case FirefoxBookmark:
return TempFirefoxBookmark
case FirefoxDownload:
return TempFirefoxDownload
case FirefoxHistory:
return TempFirefoxHistory
case FirefoxLocalStorage:
return TempFirefoxLocalStorage
case FirefoxCreditCard:
return UnsupportedItem
case FirefoxExtension:
return TempFirefoxExtension
default:
return UnknownItem
}
}
// IsSensitive returns whether the item is sensitive data
// password, cookie, credit card, master key is unlimited
func (i Item) IsSensitive() bool {
switch i {
case ChromiumKey, ChromiumCookie, ChromiumPassword, ChromiumCreditCard,
FirefoxKey4, FirefoxPassword, FirefoxCookie, FirefoxCreditCard,
YandexPassword, YandexCreditCard:
return true
default:
return false
}
}
// FilterSensitiveItems returns the sensitive items
func FilterSensitiveItems(items []Item) []Item {
var filtered []Item
for _, item := range items {
if item.IsSensitive() {
filtered = append(filtered, item)
}
}
return filtered
}
// DefaultFirefox returns the default items for the firefox browser
var DefaultFirefox = []Item{
FirefoxKey4,
FirefoxPassword,
FirefoxCookie,
FirefoxBookmark,
FirefoxHistory,
FirefoxDownload,
FirefoxCreditCard,
FirefoxLocalStorage,
FirefoxExtension,
}
// DefaultYandex returns the default items for the yandex browser
var DefaultYandex = []Item{
ChromiumKey,
ChromiumCookie,
ChromiumBookmark,
ChromiumHistory,
ChromiumDownload,
ChromiumExtension,
YandexPassword,
ChromiumLocalStorage,
YandexCreditCard,
}
// DefaultChromium returns the default items for the chromium browser
var DefaultChromium = []Item{
ChromiumKey,
ChromiumPassword,
ChromiumCookie,
ChromiumBookmark,
ChromiumHistory,
ChromiumDownload,
ChromiumCreditCard,
ChromiumLocalStorage,
ChromiumExtension,
}