JS代码解密思路

8

首先,高手可以离开了,本文没有什么技术含量,先贴上加密过的代码

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的确不行,这个简单到弱智的问题,也着实让我蛋疼了半天。

共 8 条评论

  1. 回复

    表示我比较笨没有看懂

  2. 回复

    @evlos: 😕 我小白,还希望前辈能指点一二呢·

  3. 回复

    呵呵,好主意,小邪一般是用地址栏js来解密的 ~

  4. 回复

    @阿吴: 阿吴的站打不开了 😆

  5. 回复

    冒似现在流行”蛋疼”?疼多了小心有后遗症!….. 😀

    • 回复

      哈,疼得实在受不了了就切了它,不会有后遗症的·~

  6. 回复

    着东西研究不透,自己只会改一些简单的代码

  7. 回复

    看着很简单,好像还是不太明白

回复 糖糖 X

您的邮箱不会公开,当您的评论有新的回复时,会通过您填写的邮箱向您发送评论内容。 必填字段 *

为何看不到我发布的评论?

正在提交, 请稍候...