like the following, I saw it by a plug-in in ps. After decryption, I found that it was like this, and I could understand it, but I didn"t quite understand it. Why did I write it this way? More efficient execution?
var _0x2554 = ["exec", "child_process", "os", "extract-opts", "win", "indexOf", "platform", "fingerprintjs2", "crypto", "uniqueId", "macAddress", "fingerAllRaw", "fingerRaw", "fingerHash", "updateUniqueId_FingerprintMac", "prototype", "log", "getMac", "all result:", "all components:", "get", "result:", "components:", "", "string", "replace", "toLowerCase", "hex", "digest", "update", "md5", "createHash", "uniqueId:", "info", "updateUniqueId", "misomusimei2", "zz", "noname", "getOs", "updateUniqueId_MacCPU", "model", "cpus", "misosoup221", "z", "xz", "cccc", "win32", "uuid", "wmic csproduct get UUID", "
", "x", "data", "getmac", "ifconfig -a || ip link", "test", "could not determine the mac address from:
", "match", "length"];
var exec, extractOptsAndCallback, getMac, isMac, isWindows, macRegex, zeroRegex;
var exec = require(_0x2554[1])[_0x2554[0]];
var os = require(_0x2554[2]);
var extractOptsAndCallback = require(_0x2554[3]);
var isWindows = process[_0x2554[6]][_0x2554[5]](_0x2554[4]) === 0;
var macRegex = /(?:[a-z0-9]{2}[:\-]){5}[a-z0-9]{2}/ig;
var zeroRegex = /(?:[0]{2}[:\-]){5}[0]{2}/;
var Fingerprint2 = require(_0x2554[7]);
var Cry = require(_0x2554[8]);
var os = require(_0x2554[2]);
var ExStigmata = function() {
this[_0x2554[9]] = null;
this[_0x2554[10]] = null;
this[_0x2554[11]] = null;
this[_0x2554[12]] = null;
this[_0x2554[13]] = null;
return this
};
ExStigmata[_0x2554[15]][_0x2554[14]] = function(_0x2bf3xc) {
var _0x2bf3xd = this;
_0x2bf3xd[_0x2554[17]](function(_0x2bf3xe, _0x2bf3xf) {
if (_0x2bf3xe) {
throw _0x2bf3xe
};
console[_0x2554[16]](_0x2bf3xf);
_0x2bf3xd[_0x2554[10]] = _0x2bf3xf;
_0x2bf3x10()
});
function _0x2bf3x10() {
new Fingerprint2()[_0x2554[20]](function(_0x2bf3x11, _0x2bf3x12) {
console[_0x2554[16]](_0x2554[18], _0x2bf3x11);
console[_0x2554[16]](_0x2554[19], _0x2bf3x12);
_0x2bf3xd[_0x2554[11]] = _0x2bf3x12
});
new Fingerprint2({
excludeAvailableScreenResolution: true,
excludeUserAgent: true,
excludeLanguage: true,
excludeColorDepth: true,
excludeScreenResolution: true,
excludeTimezoneOffset: true,
excludeSessionStorage: true,
excludeIndexedDB: true,
excludeAddBehavior: true,
excludeOpenDatabase: true,
excludeCpuClass: true,
excludePlatform: true,
excludeDoNotTrack: true,
excludeAdBlock: true,
excludeHasLiedLanguages: true,
excludeHasLiedResolution: true,
excludeHasLiedOs: true,
excludeHasLiedBrowser: true,
excludeJsFonts: true,
excludeFlashFonts: true,
excludePlugins: true,
excludeIEPlugins: true,
excludeTouchSupport: true,
excludePixelRatio: true,
excludeWebGL: true,
excludeCanvas: false
})[_0x2554[20]](function(_0x2bf3x11, _0x2bf3x12) {
console[_0x2554[16]](_0x2554[21], _0x2bf3x11);
console[_0x2554[16]](_0x2554[22], _0x2bf3x12);
_0x2bf3xd[_0x2554[13]] = _0x2bf3x11;
_0x2bf3xd[_0x2554[12]] = _0x2bf3x12;
var _0x2bf3xf = _0x2554[23];
if (typeof _0x2bf3xd[_0x2554[10]] == _0x2554[24]) {
var _0x2bf3xf = _0x2bf3xd[_0x2554[10]][_0x2554[25]](/[-:]/g, _0x2554[23]);
_0x2bf3xf = _0x2bf3xf[_0x2554[26]]()
};
var _0x2bf3x13 = Cry[_0x2554[31]](_0x2554[30])[_0x2554[29]](_0x2bf3xf + _0x2bf3xd[_0x2554[13]])[_0x2554[28]](_0x2554[27]);
_0x2bf3xd[_0x2554[9]] = _0x2bf3x13;
console[_0x2554[33]](_0x2554[32], _0x2bf3xd[_0x2554[9]]);
if (_0x2bf3xc != undefined) {
_0x2bf3xc()
}
})
}
};
ExStigmata[_0x2554[15]][_0x2554[34]] = function(_0x2bf3xc) {
var _0x2bf3xd = this;
_0x2bf3xd[_0x2554[38]](function(_0x2bf3x14) {
console[_0x2554[16]](_0x2bf3x14);
_0x2bf3xd[_0x2554[10]] = _0x2bf3x14;
var _0x2bf3x14 = _0x2554[23];
if (typeof _0x2bf3xd[_0x2554[10]] == _0x2554[24]) {
var _0x2bf3xf = _0x2bf3xd[_0x2554[10]][_0x2554[25]](/[-:]/g, _0x2554[23]);
_0x2bf3xf = _0x2bf3xf[_0x2554[26]]()
};
var _0x2bf3x13 = Cry[_0x2554[31]](_0x2554[30])[_0x2554[29]](_0x2554[35] + _0x2bf3x14)[_0x2554[28]](_0x2554[27]);
_0x2bf3xd[_0x2554[9]] = _0x2bf3x13 + _0x2554[36] + _0x2554[37];
console[_0x2554[33]](_0x2554[32], _0x2bf3xd[_0x2554[9]]);
if (_0x2bf3xc != undefined) {
_0x2bf3xc()
}
})
};
ExStigmata[_0x2554[15]][_0x2554[39]] = function(_0x2bf3xc) {
var _0x2bf3xd = this;
_0x2bf3xd[_0x2554[17]](function(_0x2bf3xe, _0x2bf3xf) {
if (_0x2bf3xe) {
throw _0x2bf3xe
};
console[_0x2554[16]](_0x2bf3xf);
_0x2bf3xd[_0x2554[10]] = _0x2bf3xf;
var _0x2bf3xf = _0x2554[23];
if (typeof _0x2bf3xd[_0x2554[10]] == _0x2554[24]) {
var _0x2bf3xf = _0x2bf3xd[_0x2554[10]][_0x2554[25]](/[-:]/g, _0x2554[23]);
_0x2bf3xf = _0x2bf3xf[_0x2554[26]]()
};
var _0x2bf3x15 = (os[_0x2554[41]]()[0][_0x2554[40]]) || _0x2554[23];
var _0x2bf3x13 = Cry[_0x2554[31]](_0x2554[30])[_0x2554[29]](_0x2554[42] + _0x2bf3xf + _0x2bf3x15)[_0x2554[28]](_0x2554[27]);
_0x2bf3xd[_0x2554[9]] = _0x2bf3x13 + _0x2554[43] + _0x2bf3xf;
console[_0x2554[33]](_0x2554[32], _0x2bf3xd[_0x2554[9]]);
if (_0x2bf3xc != undefined) {
_0x2bf3xc()
}
})
};
ExStigmata[_0x2554[15]][_0x2554[38]] = function(_0x2bf3xc) {
var _0x2bf3x16 = _0x2554[44];
var _0x2bf3x17 = _0x2554[37];
var _0x2bf3x15 = _0x2554[45];
try {
_0x2bf3x15 = os[_0x2554[41]]()[0][_0x2554[40]]
} catch (e) {};
if (os[_0x2554[6]]() == _0x2554[46]) {
var _0x2bf3x18 = _0x2554[23];
try {
_0x2554[47] + exec(_0x2554[48])
} catch (e) {};
_0x2bf3x18 = _0x2bf3x18[_0x2554[25]](_0x2554[49], _0x2554[50]);
_0x2bf3x16 += _0x2bf3x15 + _0x2bf3x18 + os[_0x2554[6]]()
} else {
_0x2bf3x16 = _0x2bf3x17 + _0x2bf3x15 + os[_0x2554[6]]()
};
_0x2bf3xc(_0x2bf3x16)
};
ExStigmata[_0x2554[15]][_0x2554[17]] = function(_0x2bf3x19, _0x2bf3x1a) {
var _0x2bf3x1b, _0x2bf3x1c, _0x2bf3x1d, _0x2bf3x1e;
_0x2bf3x1e = extractOptsAndCallback(_0x2bf3x19, _0x2bf3x1a), _0x2bf3x19 = _0x2bf3x1e[0], _0x2bf3x1a = _0x2bf3x1e[1];
_0x2bf3x1c = _0x2bf3x19[_0x2554[51]];
if (_0x2bf3x1c == null) {
_0x2bf3x1c = null
};
_0x2bf3x1b = isWindows ? _0x2554[52] : _0x2554[53];
_0x2bf3x1d = function(_0x2bf3x1c, _0x2bf3x1a) {
var _0x2bf3xe, _0x2bf3x1f, _0x2bf3xf, _0x2bf3x20, _0x2bf3x11;
_0x2bf3x11 = null;
while (_0x2bf3x20 = macRegex[_0x2554[0]](_0x2bf3x1c)) {
_0x2bf3xf = _0x2bf3x20[0];
_0x2bf3x1f = zeroRegex[_0x2554[54]](_0x2bf3xf);
if (_0x2bf3x1f === false) {
if (_0x2bf3x11 == null) {
_0x2bf3x11 = _0x2bf3xf
}
}
};
if (_0x2bf3x11 === null) {
_0x2bf3xe = new Error(_0x2554[55] + _0x2bf3x1c);
return _0x2bf3x1a(_0x2bf3xe)
};
return _0x2bf3x1a(null, _0x2bf3x11)
};
if (_0x2bf3x1c) {
return _0x2bf3x1d(_0x2bf3x1c, _0x2bf3x1a)
} else {
return exec(_0x2bf3x1b, function(_0x2bf3xe, _0x2bf3x21, _0x2bf3x22) {
if (_0x2bf3xe) {
return _0x2bf3x1a(_0x2bf3xe)
};
return _0x2bf3x1d(_0x2bf3x21, _0x2bf3x1a)
})
}
};
function isMac(_0x2bf3xf) {
var _0x2bf3x1e;
return ((_0x2bf3x1e = String(_0x2bf3xf)[_0x2554[56]](macRegex)) != null ? _0x2bf3x1e[_0x2554[57]] : void(0)) === 1
}