New commit
- Added ban checking ⚖️ - GUI 🪟 - HWID Checking/Creating module ⚙
This commit is contained in:
86
modules/hwid.js
Normal file
86
modules/hwid.js
Normal file
@@ -0,0 +1,86 @@
|
||||
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
|
||||
Reference in New Issue
Block a user