使用node.js模块来获取主板信息:
//加密 绑定机器
const si = require('systeminformation');
const baseboard=[[],[]];
// console.log(Buffer("180******"))
// console.log("硬件信息", si.getStaticData())
si.baseboard(function (data) {
console.log("data.serial", data.serial);
for(var k in baseboard){
if(data.serial==String.fromCharCode.apply(null, new Uint8Array(baseboard[k]))){
return;
}
}
win.close();
})
最终将js文件用nwjc加密,不过字符串仍然是明文显示,所以这里将主板序列号转为Buffer二进制信息存入baseboard数组里,来对比本机主板序列号。
wmic命令查看硬件信息:
Windows系统下使用wmic命令查看硬件信息
1、查询网卡信息:wmic nicconfig get macaddress
2、查询cpu序列号:wmic cpu get processorid
3、查询主板序列号:wmic baseboard get serialnumber
4、查询BIOS序列号:wmic bios get serialnumber5、查询硬盘:wmic DISKDRIVE get SerialNumber
部分老机型无法获取主板信息,使用另一个模块制作更稳定:
node-machine-id
var machine= require("node-machine-id");
const thissn = machine.machineIdSync({ original: true });
const comsn=[[硬件的唯一码+自己的key],[硬件的唯一码+自己的key]];//二进制buffer
const suffix=[混入自己二进制key];//二进制buffer
// 判断机器SN合法性
function lawful() {
if(comsn.length==0) return;
for(var k in comsn){
if (thissn+ String.fromCharCode.apply(null, new Uint8Array(suffix)) == String.fromCharCode.apply(null, new Uint8Array(comsn[k]))){
return;
}
}
win.close();
}
lawful();
原理是根据硬件的硬件信息+系统信息+网口信息,来获得固定的唯一码(重装系统可能会导致唯一码产生变化)
为啥comsn数组里是buffer二进制,你肯定不想唯一码在nw.js的.bin文件里明码显示吧,所以先将唯一码转为二进制buffer,nwjc生成的.bin文件里就找不到这些唯一码和key了。
模块来源:https://www.npmjs.com/package/node-machine-id
Comments | NOTHING