Javascript 代码中的奇怪名称 - 如何解码它?

问题描述 投票:0回答:1

我有一些1000行的JS代码,我在互联网上找到的,它是一些音频播放器插件。问题是还不清楚。因为所有函数和变量的名字都有难以理解的名字。

为什么?这是否意味着代码已编码并且可以解码?

例如:

function _0xe65c19(_0x5996d3) {
var _0x4fb109 = _0x2e18ad;
_0x5996d3 *= 0x3e8;
var _0x1454f1 = Math[_0x4fb109(0x1cd)](_0x5996d3 / _0x57b6cf),
  _0x10c32b = Math[_0x4fb109(0x1cd)](_0x5996d3 % _0x57b6cf / _0x208cde),
  _0x19d861 = Math[_0x4fb109(0x1cd)](_0x5996d3 % _0x208cde / _0xc5606a),
  _0x5996d3 = Math[_0x4fb109(0x1cd)](_0x5996d3 % _0xc5606a / _0x36abb6),
  _0x10c32b = _0x4b3607(0x18 * _0x1454f1 + _0x10c32b, 0x2) + ':';
return _0x10c32b += _0x4b3607(_0x19d861, 0x2) + ':', _0x10c32b += _0x4b3607(_0x5996d3, 0x2);
}

function _0x4b3607(_0x509671, _0x2dd832) {
var _0xb5d61a = _0x2e18ad;
for (_0x509671 = _0x509671[_0xb5d61a(0x1ff)](); _0x509671[_0xb5d61a(0x238)] < _0x2dd832;) _0x509671 = '0' + _0x509671;
return _0x509671;
}
_0x5a3048 = _0xe65c19(_0x8cec82);

function _0x14b432(_0x2535d6) {
var _0x55e761 = _0x2e18ad,
  _0x388ffc = $(_0x2535d6)[_0x55e761(0x206)]()[0x0][_0x55e761(0x290)](),
  _0x2cc4cd = $(_0x2535d6)[0x0][_0x55e761(0x290)](),
  _0x1b6133 = {};
_0x1b6133['top'] = _0x2cc4cd[_0x55e761(0x1c7)] - _0x388ffc[_0x55e761(0x1c7)] + $(_0x2535d6)[_0x55e761(0x206)]()[0x0][_0x55e761(0x340)], $(_0x2535d6)['parent']()[_0x55e761(0x1c0)]({
  'scrollTop': _0x1b6133[_0x55e761(0x1c7)]
}, 0x1f4);
}

我尝试使用一些在线服务解码代码,但不起作用。

javascript encoding decode autoencoder decoder
1个回答
0
投票

代码已通过混淆器运行(例如https://obfuscator.io/,它生成与代码片段中类似的变量名称),其具体目的是使其尽可能不可读。这样做的动机是多种多样的,例如确保代码在未经许可或适当许可的情况下不会被重复使用和修改。

混淆的过程在设计上是有损的,将所有变量重命名为随机字符串,重构函数并伪装原生 JS 函数的使用。它通常无法以编程方式解码,使其再次可读的唯一方法是手动对代码进行逆向工程。

© www.soinside.com 2019 - 2024. All rights reserved.