Why should the method name here be replaced by an array? Is there any good?

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
}
Mar.09,2021

Is this probably the reason for

?
javascript and hash table

(also guessed. In other words, the Adobe script itself is a deep pit.)


this is the function of the compressor / cipher.
you take a look at Baidu js online encryption , basically, take out all the api names and put them together, and then call them in an array.
after all, a.b.c (d) is the same as a ['b'] ['c'] (d) in js.

a.b.c(d)
// 
var apiArr = ['b', 'c']
a[apiArr[0]][apiArr[1]](d)

A more powerful one will also encode all the strings in this apiArr. The goal of
may be to complicate the logic and prevent others from reading your code.
js is the kind of source code that can be seen directly by right-clicking on the web page, so do it a little bit to prevent the gentleman but not the villain.

ps:, you see, his variable name 0x9527 is written like a memory pointer, but it's all a bluff.

Menu