问题
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& 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& 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