西部数码主机 | 阿里云主机| 虚拟主机 | 服务器 | 返回乐道官网
当前位置: 主页 > php教程 > 其他 >

关于eval(function(p,a,c,k,e,d)加密解密相关

时间:2011-11-14 09:54来源:未知 作者:好模板 点击:
好模板有客户发送了一个JS 文件供我们查看,最终发现程序验证是做了js验证,部分程序代码写在JS了,但是JS 文件出现编码加密的情况。发现JS首行是eval(function(p,a,c,k,e,d) 开始,后面找

 好模板有客户发送了一个JS 文件供我们查看,最终发现程序验证是做了js验证,部分程序代码写在JS了,

但是JS文件出现编码加密的情况。发现JS首行是eval(function(p,a,c,k,e,d) 开始,后面找了下相关的

资料,发现只有以下

html代码加密解密有效,特此收藏!

 

  1. <script>  
  2. a=62;  
  3. function encode() {  
  4.  var code = document.getElementById('code').value;  
  5.  codecode = code.replace(/[\r\n]+/g, '');  
  6.  codecode = code.replace(/'/g, "\\'");  
  7.  var tmp = code.match(/\b(\w+)\b/g);  
  8.  tmp.sort();  
  9.  var dict = [];  
  10.  var i, t = '';  
  11.  for(var i=0; i<tmp.length; i++) {  
  12.    if(tmp[i] != t) dict.push(t = tmp[i]);  
  13.  }  
  14.  var len = dict.length;  
  15.  var ch;  
  16.  for(i=0; i<len; i++) {  
  17.    ch = num(i);  
  18.    codecode = code.replace(new RegExp('\\b'+dict[i]+'\\b','g'), ch);  
  19.    if(ch == dict[i]) dict[i] = '';  
  20.  }  
  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,{}))";  
  23. function num(c) {  
  24.  return(c<a?'':num(parseInt(c/a)))+((cc=c%a)>35?String.fromCharCode(c+29):c.toString(36));  
  25. function run() {  
  26.  eval(document.getElementById('code').value);  
  27. function decode() {  
  28.  var code = document.getElementById('code').value;  
  29.  codecode = code.replace(/^eval/, '');  
  30.  document.getElementById('code').value = eval(code);  
  31. }  
  32. </script> 
  33.  
  34. <textarea id=code cols=80 rows=20> 
  35. </textarea> 
  36.   
  37. <input type=button onclick=encode() value=编码>  
  38. <input type=button onclick=run() value=执行>  
  39. <input type=button onclick=decode() value=解码> 

以上代码复制成html文件,直接运行就可以了!

(责任编辑:好模板)
顶一下
(1)
16.7%
踩一下
(5)
83.3%
------分隔线----------------------------