Что означают в js скрипте цифры 0x4a7a06, 0x4838cf …?

283
05 января 2018, 00:50

Что означают в js скрипте цифры 0x4a7a06, 0x4838cf ... и т.д. Как понять этот код и что в нем зашифровано? Как браузеры этот зашифрованный код распознают?

(function(_0x4838cf, _0x4a7a06) {
    var _0x1005da = function(_0xb88cd6) {
        while (--_0xb88cd6) {
            _0x4838cf['push'](_0x4838cf['shift']());
        }
    };
    _0x1005da(++_0x4a7a06);
}(_0xab10, 0x1ad));
var _0x11fd = function(_0x222a53, _0x3256d2) {
    _0x222a53 = _0x222a53 - 0x0;
    var _0x275be1 = _0xab10[_0x222a53];
    return _0x275be1;
};
var _0x36864a = function() {
    var _0x52fe4c = !![];
    return function(_0x49cdad, _0x480ad7) {
        var _0x2edbca = _0x52fe4c ? function() {
            if (_0x480ad7) {
                var _0x6f3460 = _0x480ad7[_0x11fd('0x0')](_0x49cdad, arguments);
                _0x480ad7 = null;
                return _0x6f3460;
            }
        } : function() {};
        _0x52fe4c = ![];
        return _0x2edbca;
    };
}();
var _0x412019 = _0x36864a(this, function() {
    var _0x43e9f4 = function() {
        var _0x53780f;
        try {
            _0x53780f = Function(_0x11fd('0x1') + '{}.constructor(\x22return\x20this\x22)(\x20)' + ');')();
        } catch (_0x44c843) {
            _0x53780f = window;
        }
        return _0x53780f;
    };
    var _0x31c3a6 = _0x43e9f4();
    var _0x1154cc = function() {
        return {
            'key': 'item',
            'value': _0x11fd('0x2'),
            'getAttribute': function() {
                for (var _0x5e111c = 0x0; _0x5e111c < 0x3e8; _0x5e111c--) {
                    var _0x1f5342 = _0x5e111c > 0x0;
                    switch (_0x1f5342) {
                        case !![]:
                            return this['item'] + '_' + this['value'] + '_' + _0x5e111c;
                        default:
                            this['item'] + '_' + this['value'];
                    }
                }
            }()
        };
    };
    var _0x5b23f2 = new RegExp(_0x11fd('0x3'), 'g');
    var _0x2e3d41 = 'okuaUvedrhybIpeC.comfZjkTEzMfnNZYFOfFjsCIzEa' [_0x11fd('0x4')](_0x5b23f2, '')[_0x11fd('0x5')](';');
    var _0xf2366;
    var _0xc75d99;
    for (var _0x40850f in _0x31c3a6) {
        if (_0x40850f['length'] == 0x8 && _0x40850f[_0x11fd('0x6')](0x7) == 0x74 && _0x40850f[_0x11fd('0x6')](0x5) == 0x65 && _0x40850f[_0x11fd('0x6')](0x3) == 0x75 && _0x40850f['charCodeAt'](0x0) == 0x64) {
            _0xf2366 = _0x40850f;
            break;
        }
    }
    for (var _0x4130cb in _0x31c3a6[_0xf2366]) {
        if (_0x4130cb['length'] == 0x6 && _0x4130cb[_0x11fd('0x6')](0x5) == 0x6e && _0x4130cb['charCodeAt'](0x0) == 0x64) {
            _0xc75d99 = _0x4130cb;
            break;
        }
    }
    if (!_0xf2366 && !_0xc75d99 || !_0x31c3a6[_0xf2366] && !_0x31c3a6[_0xf2366][_0xc75d99]) {
        return;
    }
    var _0x415ad3 = _0x31c3a6[_0xf2366][_0xc75d99];
    var _0x24a619 = ![];
    for (var _0x4653ae = 0x0; _0x4653ae < _0x2e3d41[_0x11fd('0x7')]; _0x4653ae++) {
        var _0xc75d99 = _0x2e3d41[_0x4653ae];
        var _0x1c9973 = _0x415ad3[_0x11fd('0x7')] - _0xc75d99[_0x11fd('0x7')];
        var _0x3aad34 = _0x415ad3['indexOf'](_0xc75d99, _0x1c9973);
        var _0x14f8fd = _0x3aad34 !== -0x1 && _0x3aad34 === _0x1c9973;
        if (_0x14f8fd) {
            if (_0x415ad3[_0x11fd('0x7')] == _0xc75d99[_0x11fd('0x7')] || _0xc75d99[_0x11fd('0x8')]('.') === 0x0) {
                _0x24a619 = !![];
            }
            break;
        }
    }
    if (!_0x24a619) {
        data;
    } else {
        return;
    }
    _0x1154cc();
});
_0x412019();
var _0x33a50e = function() {
    var _0x600f5c = !![];
    return function(_0x15833a, _0x3ddefe) {
        var _0xebeced = _0x600f5c ? function() {
            if (_0x3ddefe) {
                var _0xef0e32 = _0x3ddefe[_0x11fd('0x0')](_0x15833a, arguments);
                _0x3ddefe = null;
                return _0xef0e32;
            }
        } : function() {};
        _0x600f5c = ![];
        return _0xebeced;
    };
}();
var _0x122c37 = _0x33a50e(this, function() {
    var _0x2ecc38 = function() {};
    var _0x2379df = function() {
        var _0x4358fe;
        try {
            _0x4358fe = Function(_0x11fd('0x1') + '{}.constructor(\x22return\x20this\x22)(\x20)' + ');')();
        } catch (_0x511f82) {
            _0x4358fe = window;
        }
        return _0x4358fe;
    };
    var _0x318bd3 = _0x2379df();
    if (!_0x318bd3[_0x11fd('0x9')]) {
        _0x318bd3['console'] = function(_0x39ae3f) {
            var _0x3ec21e = {};
            _0x3ec21e[_0x11fd('0xa')] = _0x39ae3f;
            _0x3ec21e[_0x11fd('0xb')] = _0x39ae3f;
            _0x3ec21e[_0x11fd('0xc')] = _0x39ae3f;
            _0x3ec21e[_0x11fd('0xd')] = _0x39ae3f;
            _0x3ec21e[_0x11fd('0xe')] = _0x39ae3f;
            _0x3ec21e['exception'] = _0x39ae3f;
            _0x3ec21e[_0x11fd('0xf')] = _0x39ae3f;
            return _0x3ec21e;
        }(_0x2ecc38);
    } else {
        _0x318bd3['console'][_0x11fd('0xa')] = _0x2ecc38;
        _0x318bd3[_0x11fd('0x9')][_0x11fd('0xb')] = _0x2ecc38;
        _0x318bd3[_0x11fd('0x9')][_0x11fd('0xc')] = _0x2ecc38;
        _0x318bd3[_0x11fd('0x9')][_0x11fd('0xd')] = _0x2ecc38;
        _0x318bd3[_0x11fd('0x9')][_0x11fd('0xe')] = _0x2ecc38;
        _0x318bd3[_0x11fd('0x9')][_0x11fd('0x10')] = _0x2ecc38;
        _0x318bd3[_0x11fd('0x9')][_0x11fd('0xf')] = _0x2ecc38;
    }
});
_0x122c37();
GameOver = function() {
    Phaser['Sprite'][_0x11fd('0x11')](this, game, game[_0x11fd('0x12')][_0x11fd('0x13')], game[_0x11fd('0x12')][_0x11fd('0x14')], _0x11fd('0x15'), _0x11fd('0x16'));
    this['scale']['setTo'](0x0);
    this[_0x11fd('0x17')][_0x11fd('0x18')](0.5);
    game[_0x11fd('0x19')][_0x11fd('0x1a')](this[_0x11fd('0x1b')])['to']({
        'x': 0x1,
        'y': 0x1
    }, 0x1f4, _0x11fd('0x1c'), !![])['onComplete'][_0x11fd('0x19')](this['onAppear'], this);
    game['add'][_0x11fd('0x1d')](this);
    game['audio'][_0x11fd('0x1e')](_0x11fd('0x1f'));
};
GameOver[_0x11fd('0x20')] = Object['create'](Phaser[_0x11fd('0x21')][_0x11fd('0x20')]);
GameOver[_0x11fd('0x20')]['constructor'] = GameOver;
GameOver[_0x11fd('0x20')][_0x11fd('0x22')] = function() {
    var _0xa48120 = game[_0x11fd('0x19')][_0x11fd('0x23')](game[_0x11fd('0x12')][_0x11fd('0x13')], game[_0x11fd('0x12')][_0x11fd('0x14')] + 0x32, _0x11fd('0x15'), this['onRestart'], this, _0x11fd('0x24'), _0x11fd('0x24'), _0x11fd('0x24'));
    _0xa48120[_0x11fd('0x17')]['setTo'](0.5);
    var _0x402a02 = game['add'][_0x11fd('0x23')](this['x'] + 0x42, game[_0x11fd('0x12')]['centerY'] + 0x32, _0x11fd('0x15'), this[_0x11fd('0x25')], this, _0x11fd('0x26'), _0x11fd('0x26'), _0x11fd('0x26'));
    _0x402a02['anchor'][_0x11fd('0x18')](0.5);
    var _0x2ffa7e = game[_0x11fd('0x19')][_0x11fd('0x23')](this['x'] - 0x42, game[_0x11fd('0x12')][_0x11fd('0x14')] + 0x32, _0x11fd('0x15'), this['onLevels'], this, _0x11fd('0x27'), _0x11fd('0x27'), _0x11fd('0x27'));
    _0x2ffa7e[_0x11fd('0x17')][_0x11fd('0x18')](0.5);
};
GameOver['prototype'][_0x11fd('0x28')] = function() {
    game[_0x11fd('0x29')][_0x11fd('0x2a')](_0x11fd('0x2b'), !![], ![], game['session'][_0x11fd('0x2c')]);
};
GameOver[_0x11fd('0x20')][_0x11fd('0x25')] = function() {
    game[_0x11fd('0x29')][_0x11fd('0x2a')](_0x11fd('0x2d'));
};
GameOver[_0x11fd('0x20')]['onLevels'] = function() {
    game[_0x11fd('0x29')]['start'](_0x11fd('0x2e'));
};
Answer 1

Такое делается не только в js.

Есть языки программирования которые используют не компилятор для преобразования человечески понятный код в машинный. Они используют интерпретатор. А так если передать свой код другому (ну или продать) не могут защитить свой код от повторного использования, или перезаписи. Ну и для этого они неким образом кодируют свой код. Что бы каким то образом защитить свой код от всего этого.

Ну и вот здесь код каким то образом кодировали.

В javascript можно использовать почти все символы для имен переменных и функций и т.д.

Вот к примеру ваш код function(_0x4838cf, _0x4a7a06). Эти две значения просто имена переменных передаваемые в функцию.

Answer 2

Это hex(шестнадцатеричный) код(0x говорит о том, что это шестнадцатеричная система), в этом случае, переменных. Можете посмотреть тут, что означают эти кодировки.

Если лень, то вот, что получается:

4838cf = H8Ï
4a7a06 = Jz
READ ALSO
вернуть данные из php в форму

вернуть данные из php в форму

Есть такой formphp который собирает реквизиты,

215
Сократить кол-во цифр в PHP

Сократить кол-во цифр в PHP

Произвожу вычисление в PHP следующих чисел: 1999 / 15000 На выходе получаю 013326666666666667 Как остаток сократить до 6-ти чисел? чтобы на выходе вышло 0

230
sql запрос с приоритетом

sql запрос с приоритетом

как создать sql запрос так, чтоб, например, первые 12 товаров (из 24) выводились по условию top = 1 и затем все остальные товары?

232
Laravel и очереди

Laravel и очереди

Хотелось бы узнать подробнее про очереди в laravelЕсть 2 вопроса, оба на уровне джуниора, но всё же

251