在网上下载源代码时,很可能发现代码里的JS脚本看不懂,这是由于JS加密造成的。如果你发现JS是以eval(function(p,a,c,k,e,r){e=function(c)开头的,看到这个页面你就可以解决他
步骤:1.新建html页面,把以下代码考进去,运行。
2.把加密的代码粘进文本域,点击解密,OK!
核心代码:
04 | var code = document.getElementById( 'code' ).value; |
05 | code = code.replace(/[\r\n]+/g, '' ); |
06 | code = code.replace(/ '/g, "\\' "); |
07 | var tmp = code.match(/\b(\w+)\b/g); |
11 | for ( var i=0; i<tmp.length; i++) { |
12 | if (tmp[i] != t) dict.push(t = tmp[i]); |
18 | code = code.replace( new RegExp( '\\b' +dict[i]+ '\\b' , 'g' ), ch); |
19 | if (ch == dict[i]) dict[i] = '' ; |
21 | document.getElementById( 'code' ).value = "eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\\\b'+e(c)+'\\\\b','g'),k[c]);return p}(" |
22 | + "'" +code+ "'," +a+ "," +len+ ",'" + dict.join('| ')+"' .split( '|' ),0,{}))"; |
26 | return (c<a? '' :num(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36)); |
30 | eval(document.getElementById( 'code' ).value); |
34 | var code = document.getElementById( 'code' ).value; |
35 | code = code.replace(/^eval/, '' ); |
36 | document.getElementById( 'code' ).value = eval(code); |
41 | <textarea id=code cols=80 rows=20> |
44 | <input type=button onclick=encode() value=编码> |
45 | <input type=button onclick=run() value=执行> |
46 | <input type=button onclick=decode() value=解码> |