azures04 6c4948d0b2 New commit
-  Added ban checking ⚖️
    -  GUI 🪟
    -  HWID Checking/Creating module ⚙
2025-04-26 11:06:59 +02:00

86 lines
2.9 KiB
JavaScript

const crypto = require("node:crypto")
const os = require("node:os")
const { readFileSync } = require("fs")
const { execSync } = require("child_process")
function getDiskSerial() {
try {
let command
if (os.platform() === "win32") {
command = "wmic diskdrive get serialnumber"
const output = execSync(command).toString()
const serial = output.split("\n")[1].trim()
return serial
} else if (os.platform() === "darwin") {
command = "system_profiler SPHardwareDataType | grep 'Serial Number'"
const output = execSync(command).toString()
const serial = output.match(/Serial Number: (.+)/)?.[1]?.trim()
return serial
} else if (os.platform() === "linux") {
const serialPath = "/sys/class/block/sda/device/serial"
const serial = readFileSync(serialPath, "utf8").trim()
return serial
} else {
throw new Error("Unsupported OS")
}
} catch (error) {
console.error("Error retrieving disk serial number:", error)
return ""
}
}
function getMotherboardSerial() {
try {
let command
if (os.platform() === "win32") {
command = "wmic baseboard get serialnumber"
const output = execSync(command).toString()
const serial = output.split("\n")[1].trim()
return serial
} else if (os.platform() === "darwin") {
command = "ioreg -l | grep IOPlatformSerialNumber"
const output = execSync(command).toString()
const serial = output.match(/"IOPlatformSerialNumber" = "(.+?)"/)?.[1]?.trim()
return serial
} else if (os.platform() === "linux") {
const serialPath = "/sys/class/dmi/id/board_serial"
const serial = readFileSync(serialPath, "utf8").trim()
return serial
} else {
throw new Error("Unsupported OS")
}
} catch (error) {
console.error("Error retrieving motherboard serial number:", error)
return ""
}
}
function getMacAddresses() {
const networkInterfaces = os.networkInterfaces()
const macs = []
for (const iface of Object.values(networkInterfaces)) {
for (const nic of iface) {
if (!nic.internal && nic.mac !== "00:00:00:00:00:00") {
macs.push(nic.mac)
}
}
}
return macs.join("")
}
function generateHWID() {
const diskSerial = getDiskSerial()
const motherboardSerial = getMotherboardSerial()
const macAddresses = getMacAddresses()
const cpuInfo = os.cpus().map(cpu => cpu.model).join("")
const user = os.userInfo().username
const uniqueData = `${diskSerial}-${motherboardSerial}-${macAddresses}-${cpuInfo}-${user}`
const hwid = crypto.createHash("sha256").update(uniqueData).digest("hex")
return hwid
}
module.exports.getHWID = generateHWID