首先,高手可以离开了,本文没有什么技术含量,先贴上加密过的代码
1 | eval(function(p,a,c,k,e,r){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--)r[e(c)]=k[c]||e(c);k=[function(e){return r[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}( 加密过的代码略过无数行...)) |
这段等于是处理压缩后的代码,把它还原成未压缩前的代码,return p的作用是执行编译后的代码,也就是说在这里的p已经是系统可识别的代码了
新建一个HTML文件 test.html
1 2 3 4 | <input name=unpacker></input> <script type="text/javascript"> eval(function(p,a,c,k,e,r){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--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);unpacker.value=p}( 加密过的代码略过无数行...)) </script> |
用 unpacker.value=p 替换原来的 return p ,unpacker.value=p 的作用是把p赋给name为unpacker的input,浏览器中执行这个HTML文件,input中显示出来就是未加密过的源代码了
PS:我JS的确不行,这个简单到弱智的问题,也着实让我蛋疼了半天。
表示我比较笨没有看懂
@evlos: 😕 我小白,还希望前辈能指点一二呢·
呵呵,好主意,小邪一般是用地址栏js来解密的 ~
@阿吴: 阿吴的站打不开了 😆
冒似现在流行”蛋疼”?疼多了小心有后遗症!….. 😀
哈,疼得实在受不了了就切了它,不会有后遗症的·~
着东西研究不透,自己只会改一些简单的代码
看着很简单,好像还是不太明白