JS强大的加密解密方法实例
昨天看到一个网站给人加入一串好怪的代码,如:eval("\166\141\162\40\154\154\75\42\146\165\156…………")这样的形式的,加到JS代码里,好强大,这一下不知道如何解密了,看来能看成这个的代码,这黑客还挺厉害,后来在网上找到一些关于这方面的资料,来看下吧。
1、经典的地址烂输入:
javascript:s=document.documentElement.outerHTML;document.write("");document.body.innerText=s;
然后回车。
2、document.write()
3、alert()
4、eval()
实例:(来自http://racle.byethost16.com/ 黑客挑战赛竞赛题目第一关)
<script type="text/javascript">
eval("\166\141\162\40\154\154\75\42\146\165\156\143\164\151\157\156\55\62\60\162\165\156\151\143\157\144\145\55\62\70\163\55\62\71\55\67\102\55\60\101\166\141\162\55\62\60\153\55\63\104\163\56\163\160\154\151\164\55\62\70\55\62\62\55\63\102\55\62\62\55\62\71\55\63\102\55\60\101\166\141\162\55\62\60\162\163\55\63\104\55\62\62\55\62\62\55\63\102\55\60\101\146\157\162\55\62\70\151\55\63\104\60\55\63\102\151\55\63\103\153\56\154\145\156\147\164\150\55\63\102\151\53\53\55\62\71\55\67\102\55\60\101\55\62\60\55\62\60\166\141\162\55\62\60\155\55\63\104\153\55\65\102\151\55\65\104\56\162\145\160\154\141\143\145\55\62\70\57\55\62\66\55\62\63\57\55\62\103\55\62\62\55\62\62\55\62\71\55\63\102\55\60\101\55\62\60\55\62\60\162\163\53\55\63\104\123\164\162\151\156\147\56\146\162\157\155\103\150\141\162\103\157\144\145\55\62\70\155\55\62\71\55\63\102\55\60\101\55\62\60\55\62\60\55\67\104\55\60\101\55\62\60\55\62\60\162\145\164\165\162\156\55\62\60\162\163\55\63\102\55\60\101\55\67\104\55\60\101\55\60\101\166\141\162\55\62\60\160\160\55\63\104\55\62\62\124\101\66\60\55\63\102\124\101\61\60\65\55\63\102\124\101\61\60\62\55\63\102\124\101\61\61\64\55\63\102\124\101\71\67\55\63\102\124\101\61\60\71\55\63\102\124\101\61\60\61\55\63\102\124\101\63\62\55\63\102\124\101\61\61\65\55\63\102\124\101\61\61\64\55\63\102\124\101\71\71\55\63\102\124\101\66\61\55\63\102\124\101\64\71\55\63\102\124\101\64\66\55\63\102\124\101\61\61\62\55\63\102\124\101\61\60\64\55\63\102\124\101\61\61\62\55\63\102\124\101\66\63\55\63\102\124\101\61\61\65\55\63\102\124\101\61\61\66\55\63\102\124\101\61\60\61\55\63\102\124\101\61\61\62\55\63\102\124\101\66\61\55\63\102\124\101\64\71\55\63\102\124\101\64\70\55\63\102\124\101\63\62\55\63\102\124\101\61\60\62\55\63\102\124\101\61\61\64\55\63\102\124\101\71\67\55\63\102\124\101\61\60\71\55\63\102\124\101\61\60\61\55\63\102\124\101\71\70\55\63\102\124\101\61\61\61\55\63\102\124\101\61\61\64\55\63\102\124\101\61\60\60\55\63\102\124\101\61\60\61\55\63\102\124\101\61\61\64\55\63\102\124\101\66\61\55\63\102\124\101\64\70\55\63\102\124\101\66\62\55\63\102\124\101\66\60\55\63\102\124\101\64\67\55\63\102\124\101\61\60\65\55\63\102\124\101\61\60\62\55\63\102\124\101\61\61\64\55\63\102\124\101\71\67\55\63\102\124\101\61\60\71\55\63\102\124\101\61\60\61\55\63\102\124\101\66\62\55\63\102\124\101\66\60\55\63\102\124\101\64\67\55\63\102\124\101\61\60\60\55\63\102\124\101\61\60\65\55\63\102\124\101\61\61\70\55\63\102\124\101\66\62\55\63\102\55\62\62\55\63\102\160\160\55\63\104\160\160\56\162\145\160\154\141\143\145\55\62\70\57\124\101\57\147\55\62\103\55\62\62\55\62\66\55\62\63\55\62\62\55\62\71\55\63\102\55\60\101\144\157\143\165\155\145\156\164\56\167\162\151\164\145\55\62\70\162\165\156\151\143\157\144\145\55\62\70\160\160\55\62\71\55\62\71\55\63\102\42\73\154\154\75\154\154\56\162\145\160\154\141\143\145\50\57\55\57\147\54\42\45\42\51\73\145\166\141\154\50\165\156\145\163\143\141\160\145\50\154\154\51\51\73");
</script>
实例解密过程:
1.eval变成document.write
得到:
var ll="function-20runicode-28s-29-7B-0Avar-20k-3Ds.split-28-22-3B-22-29-3B-0Avar-20rs-3D-22-22-3B-0Afor-28i-3D0-3Bi-3Ck.length-3Bi++-29-7B-0A-20-20var-20m-3Dk-5Bi-5D.replace-28/-26-23/-2C-22-22-29-3B-0A-20-20rs+-3DString.fromCharCode-28m-29-3B-0A-20-20-7D-0A-20-20return-20rs-3B-0A-7D-0A-0Avar-20pp-3D-22TA60-3BTA105-3BTA102-3BTA114-3BTA97-3BTA109-3BTA101-3BTA32-3BTA115-3BTA114-3BTA99-3BTA61-3BTA49-3BTA46-3BTA112-3BTA104-3BTA112-3BTA63-3BTA115-3BTA116-3BTA101-3BTA112-3BTA61-3BTA49-3BTA48-3BTA32-3BTA102-3BTA114-3BTA97-3BTA109-3BTA101-3BTA98-3BTA111-3BTA114-3BTA100-3BTA101-3BTA114-3BTA61-3BTA48-3BTA62-3BTA60-3BTA47-3BTA105-3BTA102-3BTA114-3BTA97-3BTA109-3BTA101-3BTA62-3BTA60-3BTA47-3BTA100-3BTA105-3BTA118-3BTA62-3B-22-3Bpp-3Dpp.replace-28/TA/g-2C-22-26-23-22-29-3B-0Adocument.write-28runicode-28pp-29-29-3B";ll=ll.replace(/-/g,"%");eval(unescape(ll));
2.上面再此替换:
得到:
function runicode(s){ var k=s.split(";"); var rs=""; for(i=0;i<k.length;i++){ var m=k[i].replace(/&#/,""); rs+=String.fromCharCode(m); } return rs; } var pp="TA60;TA105;TA102;TA114;TA97;TA109;TA101;TA32;TA115;TA114;TA99;TA61;TA49;TA46;TA112;TA104;TA112;TA63;TA115;TA116;TA101;TA112;TA61;TA49;TA48;TA32;TA102;TA114;TA97;TA109;TA101;TA98;TA111;TA114;TA100;TA101;TA114;TA61;TA48;TA62;TA60;TA47;TA105;TA102;TA114;TA97;TA109;TA101;TA62;TA60;TA47;TA100;TA105;TA118;TA62;";pp=pp.replace(/TA/g,"&#"); document.write(runicode(pp));
还有一些是自定义的JS加密与解密方式。