消除Javascript代码的模糊,使其再次可读

消除Javascript代码的模糊,使其再次可读,javascript,deobfuscation,Javascript,Deobfuscation,我讨厌把这个带到这里,在学习模糊JS代码时,我对代码进行了编码,然后在没有任何备份的情况下重写了原始代码:)下面是我的模糊代码 var _0xf17f=["\x28","\x29","\x64\x69\x76","\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74","\x69\x64","\x53\x74\x75\x64\x65\x6E\x74\x5F\x6E\x61\x6D\x65","\x73\x74\x75\x64\x65\x6E\x

我讨厌把这个带到这里,在学习模糊JS代码时,我对代码进行了编码,然后在没有任何备份的情况下重写了原始代码:)下面是我的模糊代码

var _0xf17f=["\x28","\x29","\x64\x69\x76","\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74","\x69\x64","\x53\x74\x75\x64\x65\x6E\x74\x5F\x6E\x61\x6D\x65","\x73\x74\x75\x64\x65\x6E\x74\x5F\x64\x6F\x62","\x3C\x62\x3E\x49\x44\x3A\x3C\x2F\x62\x3E","\x3C\x61\x20\x68\x72\x65\x66\x3D\x22\x2F\x6C\x65\x61\x72\x6E\x69\x6E\x67\x79\x69\x69\x2F\x69\x6E\x64\x65\x78\x2E\x70\x68\x70\x3F\x72\x3D\x73\x74\x75\x64\x65\x6E\x74\x2F\x76\x69\x65\x77\x26\x61\x6D\x70\x3B\x20\x69\x64\x3D","\x22\x3E","\x3C\x2F\x61\x3E","\x3C\x62\x72\x2F\x3E","\x3C\x62\x3E\x53\x74\x75\x64\x65\x6E\x74\x20\x4E\x61\x6D\x65\x3A\x3C\x2F\x62\x3E","\x3C\x62\x3E\x53\x74\x75\x64\x65\x6E\x74\x20\x44\x4F\x42\x3A\x3C\x2F\x62\x3E","\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C","\x63\x6C\x61\x73\x73","\x76\x69\x65\x77","\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x70\x72\x65\x70\x65\x6E\x64","\x2E\x69\x74\x65\x6D\x73","\x66\x69\x6E\x64","\x23\x53\x74\x75\x64\x65\x6E\x74\x47\x72\x69\x64\x56\x69\x65\x77\x49\x64"];function call_func(_0x41dcx2){var _0x41dcx3=eval(_0xf17f[0]+_0x41dcx2+_0xf17f[1]);var _0x41dcx4=document[_0xf17f[3]](_0xf17f[2]);var _0x41dcx5=_0x41dcx3[_0xf17f[4]];var _0x41dcx6=_0x41dcx3[_0xf17f[5]];var _0x41dcx7=_0x41dcx3[_0xf17f[6]];var _0x41dcx8=_0xf17f[7];_0x41dcx8+=_0xf17f[8]+_0x41dcx5+_0xf17f[9]+_0x41dcx5+_0xf17f[10];_0x41dcx8+=_0xf17f[11];_0x41dcx8+=_0xf17f[12];_0x41dcx8+=_0x41dcx6;_0x41dcx8+=_0xf17f[11];_0x41dcx8+=_0xf17f[13];_0x41dcx8+=_0x41dcx7;_0x41dcx8+=_0xf17f[11];_0x41dcx4[_0xf17f[14]]=_0x41dcx8;_0x41dcx4[_0xf17f[17]](_0xf17f[15],_0xf17f[16]);$(_0xf17f[21])[_0xf17f[20]](_0xf17f[19])[_0xf17f[18]](_0x41dcx4);} ;
有谁能告诉我这个网址或任何方法让它可读吗。我在网站上做了这件事,他们似乎在网站上提供了单向模糊处理服务……这是我在学习期间的测试代码,如果有人能帮助我,那将是非常棒的。

试试这个:


我使用您的代码进行了测试,并尽可能地工作=D

来自谷歌的第一个链接

function call_func(_0x41dcx2) {
 var _0x41dcx3 = eval('(' + _0x41dcx2 + ')');
 var _0x41dcx4 = document['createElement']('div');
 var _0x41dcx5 = _0x41dcx3['id'];
 var _0x41dcx6 = _0x41dcx3['Student_name'];
 var _0x41dcx7 = _0x41dcx3['student_dob'];
 var _0x41dcx8 = '<b>ID:</b>';
 _0x41dcx8 += '<a href="/learningyii/index.php?r=student/view&amp; id=' + _0x41dcx5 + '">' + _0x41dcx5 + '</a>';
 _0x41dcx8 += '<br/>';
 _0x41dcx8 += '<b>Student Name:</b>';
 _0x41dcx8 += _0x41dcx6;
 _0x41dcx8 += '<br/>';
 _0x41dcx8 += '<b>Student DOB:</b>';
 _0x41dcx8 += _0x41dcx7;
 _0x41dcx8 += '<br/>';
 _0x41dcx4['innerHTML'] = _0x41dcx8;
 _0x41dcx4['setAttribute']('class', 'view');
 $('#StudentGridViewId')['find']('.items')['prepend'](_0x41dcx4);
};
函数调用\u func(\u 0x41dcx2){
var_0x41dcx3=eval(“(”+_0x41dcx2+)”);
var_0x41dcx4=文档['createElement']('div');
变量0x41dcx5=\u0x41DCX3['id'];
变量0x41dcx6=\u0x41DCX3['Student\u name'];
变量0x41dcx7=\u0x41DCX3['student\uDOB'];
var_0x41dcx8='ID:';
_0x41dcx8+='';
_0x41dcx8+='
'; _0x41dcx8+=“学生姓名:”; _0x41dcx8+=0x41dcx6; _0x41dcx8+='
'; _0x41dcx8+=“学生出生日期:”; _0x41dcx8+=0x41dcx7; _0x41dcx8+='
'; _0x41dcx4['innerHTML']=\u 0x41dcx8; _0x41dcx4['setAttribute']('class','view'); $('#StudentGridViewId')['find']('.items')['prepend'](_0x41dcx4); };
它不会让你一路回到源头,这也不太可能,但它会让你走出困境。

这里是:

function call_func(input) {
    var evaled = eval('(' + input + ')');
    var newDiv = document.createElement('div');
    var id = evaled.id;
    var name = evaled.Student_name;
    var dob = evaled.student_dob;
    var html = '<b>ID:</b>';
    html += '<a href="/learningyii/index.php?r=student/view&amp; id=' + id + '">' + id + '</a>';
    html += '<br/>';
    html += '<b>Student Name:</b>';
    html += name;
    html += '<br/>';
    html += '<b>Student DOB:</b>';
    html += dob;
    html += '<br/>';
    newDiv.innerHTML = html;
    newDiv.setAttribute('class', 'view');
    $('#StudentGridViewId').find('.items').prepend(newDiv);
};
函数调用函数(输入){
var evaled=eval(“(“+input+”)”);
var newDiv=document.createElement('div');
var id=evaled.id;
var name=evaled.Student\u name;
var dob=evaled.student_dob;
var html='ID:';
html+='';
html+='
'; html+=“学生姓名:”; html+=名称; html+='
'; html+=“学生出生日期:”; html+=dob; html+='
'; newDiv.innerHTML=html; setAttribute('class','view'); $('#StudentGridViewId').find('.items').prepend(newDiv); };
这里有一个新的自动化工具,JSNice,用来尝试对其进行脱毒/脱毒。该工具甚至尝试猜测变量名,这是难以置信的酷。(为此,它在github上挖掘Javascript。)


我试过两种在线jsbeautifier(jsbeautifier,jsnice), 这些工具给了我漂亮的js代码

但无法复制非常大的js(必须是bug,当我复制时,复制的缓冲区只包含一个字符“-”)

我发现唯一有效的解决方案是prettyjs:


吸取的教训,请使用a,这样您就可以恢复您的错误。我不希望您也将此带到这里。这样说有点离题。(不过,作为将来的参考,如果您使用的是版本控制系统,您就不会处于这种情况。)是的..同意..我一直使用它,但因为这是一个学习项目,所以我面临着困难..:)无法将代码还原到原始状态,因为所有变量名都丢失了。您所能做的最好的事情就是美化它,并通过在变量名上使用mass replace向后工作。简短回答:您必须手动对其进行除臭。@millimoose这是拉丁1十六进制编码,只需通过解码器运行即可。就像我说的,这是手册,你是怎么破译的?我还意外地用模糊的代码替换了我的原始代码,比如其他答案提到的jsnice或jsbeautifier。然后我研究了它,找出它在做什么,并重新命名了变量。哇@TrevorDixon,你在哪里学会了解码模糊?请给我linkHi@Trevor Dixon,我在哪里联系到你来做工作的?@MarzCT我给你发了一封电子邮件。你是怎么做到的?我在谷歌上找不到第一个链接。我尝试了谷歌的所有链接和程序,但你的Deobfousation更好。它用值代替数组索引!是自动除臭吗?