De-obfuscate Javascript code to make it readable again

不羁岁月 提交于 2019-11-26 12:38:41

问题


I hate to bring this here, while doing the learning of obfuscating the JS code, I encoded my code and then over wrote the orginal one without any backup :) Following is my obfuscated code.

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);} ;

Can anyone guide me the URL or any method to make it readable. I did this from this website and they seemingly provide on one way obfuscation services available on their website...this was my test code during a learning so would be greatful if anyone could help me out.


回答1:


Try this: http://jsbeautifier.org/

I tested with your code and worked as good as possible. =D




回答2:


Here's a new automated tool, JSNice, to try to deobfuscate/deminify it. The tool even tries to guess the variable names, which is unbelievably cool. (It mines Javascript on github for this purpose.)

http://www.jsnice.org




回答3:


Here it is:

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);
};



回答4:


From the first link on google;

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);
};

It won't get you all the way back to source, and that's not really possible, but it'll get you out of a hole.




回答5:


I have tried both of online jsbeautifier(jsbeautifier, jsnice), these tools gave me beautiful js code,

but couldn't copy for very large js (must be bug, when i copy, copied buffer contains only one character '-').

I found that only working solution was prettyjs:

http://www.thaoh.net/prettyjs/



来源:https://stackoverflow.com/questions/12921713/de-obfuscate-javascript-code-to-make-it-readable-again

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!