Что означают в 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'));
};
Такое делается не только в js
.
Есть языки программирования которые используют не компилятор для преобразования человечески понятный код в машинный. Они используют интерпретатор. А так если передать свой код другому (ну или продать) не могут защитить свой код от повторного использования, или перезаписи. Ну и для этого они неким образом кодируют свой код. Что бы каким то образом защитить свой код от всего этого.
Ну и вот здесь код каким то образом кодировали.
В javascript
можно использовать почти все символы для имен переменных и функций и т.д.
Вот к примеру ваш код function(_0x4838cf, _0x4a7a06)
. Эти две значения просто имена переменных передаваемые в функцию.
Это hex(шестнадцатеричный) код(0x
говорит о том, что это шестнадцатеричная система), в этом случае, переменных.
Можете посмотреть тут, что означают эти кодировки.
Если лень, то вот, что получается:
4838cf = H8Ï
4a7a06 = Jz
Произвожу вычисление в PHP следующих чисел: 1999 / 15000 На выходе получаю 013326666666666667 Как остаток сократить до 6-ти чисел? чтобы на выходе вышло 0
как создать sql запрос так, чтоб, например, первые 12 товаров (из 24) выводились по условию top = 1 и затем все остальные товары?
Хотелось бы узнать подробнее про очереди в laravelЕсть 2 вопроса, оба на уровне джуниора, но всё же