2015-12-11 63 views
0

我正在浏览一些下载的javascript,发现代码是用十六进制值而不是'普通'js语法编写的。例如:转换javascript十六进制代码

if (!_0x7cd2x2[_0x2dae[19]](_0x2dae[18])) { 
    var _0x7cd2x8 = true; 
    _0x7cd2x2[_0x2dae[21]](_0x2dae[20]); 
} else { 
    var _0x7cd2x8 = false; 
    _0x7cd2x2[_0x2dae[21]](_0x2dae[22]); 
} 
; 
if (_0x7cd2x2[_0x2dae[19]](_0x2dae[23])) { 
    var _0x7cd2x9 = true 
} 
; 

有人能帮我理解代码以及它是如何完成的。

+0

该代码已被转换为程序以使其难以理解。 – Pointy

回答

0

所以,其实上面的代码是100%完全有效的javascript。原始脚本已经通过混淆器运行,以使其难以理解。

最可能使用任何混淆器将变量名称替换为数字,用“_”作为前缀并将该数字打印为十六进制值。

要了解代码,您将需要整个样本,并有很多耐心。

+0

我有整个脚本。有没有办法可以扭转它? –

+0

不自动。不,如果没有将十六进制值映射到其原始名称,则无法知道所调用的是什么。最重要的是,混淆器通常以不破坏底层逻辑的方式切换语句。 –

+0

谢谢你的解释。 –