2015-12-12 32 views
0

所以我有这个JavaScript代码,我的朋友给了我,我不知道它是什么,他希望我找出。所以我正在阅读它,然后我发现了这一点。解码Javascript阵列

localStorage[_0xa5fd[8]] = JSON[_0xa5fd[14]](default_r_o)), !d[_0xa5fd[15]](localStorage[_0xa5fd[8]])) return; 
         r_o = JSON[_0xa5fd[11]](localStorage[_0xa5fd[8]]), jQuery[_0xa5fd[39]](r_o, function (_0xb434x1, _0xb434x2) { 
          void 0 == _0xb434x2 && _0xb434x1 == _0xa5fd[16] ? _0xb434x2 == _0xa5fd[12] : void 0 == _0xb434x2 && (_0xb434x2 = !1), typeof _0xb434x2 == _0xa5fd[17] ? (jQuery(_0xa5fd[5], jQuery(_0xa5fd[18] + _0xb434x1 + _0xa5fd[19])[_0xa5fd[6]]())[0][_0xa5fd[4]] = _0xb434x2, fnc = jQuery(_0xa5fd[5], jQuery(_0xa5fd[18] + _0xb434x1 + _0xa5fd[19])[_0xa5fd[6]]())[_0xa5fd[21]](_0xa5fd[20]), fnf = _0xb434x1 == _0xa5fd[22] || _0xb434x1 == _0xa5fd[23] ? _0xa5fd[24] : _0xa5fd[13], fnc = fnc[_0xa5fd[27]](0, fnc[_0xa5fd[26]](_0xa5fd[25])) + _0xa5fd[25] + fnf + _0xb434x2 + _0xa5fd[28], eval(_0xa5fd[29] + fnc)) : _0xb434x1 == _0xa5fd[30] ? jQuery(_0xa5fd[32])[_0xa5fd[31]](r_o[_0xa5fd[30]]) : _0xb434x1 == _0xa5fd[33] ? jQuery(_0xa5fd[34])[_0xa5fd[31]](r_o[_0xa5fd[33]]) : _0xb434x1 == _0xa5fd[16] && (r_o[_0xa5fd[16]] == _0xa5fd[35] ? (jQuery(_0xa5fd[37])[_0xa5fd[36]](_0xa5fd[4]) 

我在问的是有没有办法扩大数组?比如将数组自动重新编码的程序变成了单词?

+0

什么话? ... – zerkms

+0

它被混淆了,意思是“模糊,不清楚或无法理解”。目的是阻止你阅读它,并且意图已经成功。 –

+0

我可以重新创建它,但这会花费太长时间。有没有办法自动修复数组? –

回答

0

这里有一个这样的脚本的JS样本:

<script> 

     var _0xa5fd = [ "failure", "onload", "responseXML", "responseText", "DOMParser", "text/xml", "parseFromString", "Microsoft.XMLDOM"]; 

     /** 
     * @param {FileList} fileList 
     */ 
     function handleFiles(fileList) 
     { 
      var reader = new FileReader(); 
      reader.onload = onReadFile; 
      reader.readAsText(fileList.item(0)); 
     } 

     function onReadFile(event) 
     { 
      var fileContent = event.target.result; 
      var regex = /_0xa5fd\[(\d+)\]/ig; 
      var itemList; 
      var count = 0; 

      while ((itemList = regex.exec(fileContent)) != null) 
      { 
       var realValueKey = itemList[1]; 
       var realValue = _0xa5fd[realValueKey]; 

       if(realValue !== undefined) 
       { 
        var replaceRegex = new RegExp('_0xa5fd\\[' + realValueKey + '\\]', 'g'); 
        fileContent = fileContent.replace(replaceRegex, "'" + realValue + "'"); 
       } 

       count++; 
      } 

      console.log('finish: ' + count); 
      document.getElementById('scriptContent').innerText = fileContent; 
     } 
    </script> 

和HTML代码来选择混淆的文件:

<input type="file" id="input" onchange="handleFiles(this.files)"> 
<div id="scriptContent"></div> 
+0

哇,谢谢这真棒!如果我想尝试它,我应该不得不将html上传到网站,然后运行JavaScript? –

+0

我不确定我完全理解你的问题。您需要创建一个html页面并添加我提供的代码片段。然后在浏览器中启动该页面并选择需要处理的文件。 –

+0

我明白了,谢谢!代码完美无瑕! –