Js本地加密解密破解

摘要

昨天调试程序的时候发现一个js加密了,里面有广告,这年头很多人对ad都很反感,当然Tc也不例外,于是就找了个解密代码给大家分享下!js(eval(function(p,a,c,k,e,d){)代码解密,<P>现在很多JavaScript库是采用这种方式加密的. 想看源码的可以用下面的代码解密。</P><SCRIPT> a=62; function encode() { …

昨天调试程序的时候发现一个js加密了,里面有广告,这年头很多人对ad都很反感,当然Tc也不例外,于是就找了个解密代码给大家分享下!

js(eval(function(p,a,c,k,e,d){)代码解密,

<P>现在很多JavaScript库是采用这种方式加密的. 想看源码的可以用下面的代码解密。</P>
<SCRIPT>
a=62;
function encode() {
 var code = document.getElementById('code').value;
 code = code.replace(/[\r\n]+/g, '');
 code = code.replace(/'/g, "\\'");
 var tmp = code.match(/\b(\w+)\b/g);
 tmp.sort();
 var dict = [];
 var i, t = '';
 for(var i=0; i<tmp.length; i++) {
   if(tmp[i] != t) dict.push(t = tmp[i]);
 }
 var len = dict.length;
 var ch;
 for(i=0; i<len; i++) {
   ch = num(i);
   code = code.replace(new RegExp('\\b'+dict[i]+'\\b','g'), ch);
   if(ch == dict[i]) dict[i] = '';
 }
 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}("
   + "'"+code+"',"+a+","+len+",'"+ dict.join('|')+"'.split('|'),0,{}))";
}
 
function num(c) {
 return(c<a?'':num(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36));
}
 
function run() {
 eval(document.getElementById('code').value);
}
 
function decode() {
 var code = document.getElementById('code').value;
 code = code.replace(/^eval/, '');
 document.getElementById('code').value = eval(code);
}
</SCRIPT>
<TEXTAREA id=code rows=20 cols=80>

</TEXTAREA><BR><INPUT onclick=encode() value=编码 type=button> <INPUT onclick=run() value=执行 type=button> <INPUT onclick=decode() value=解码 type=button>

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: