本文目录一览:
- 1、js解密!!!
- 2、JS代码解密
- 3、JavaScript解密
- 4、JS加密代码。。求解密方法。
- 5、帮我破解一段被加密的js代码。
- 6、js怎么解密,js解密工具js怎么查看这些代码麻烦给解决一下
js解密!!!
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; itmp.length; i++) {
if(tmp[i] != t) dict.push(t = tmp[i]);
}
var len = dict.length;
var ch;
for(i=0; ilen; 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(ca?'':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(ca?'':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 cols=80 rows=20
/textarea
input type=button onclick=encode() value=编码
input type=button onclick=run() value=执行
input type=button onclick=decode() value=解码
JS代码解密
解密后eval那段的原文如下(是一个解密函数):
function uncodeStr(str){
str=str.replace(/\^/g,"%");//把原来字符串里的~符号替换成%号
var str_len=str.length-1;//后面数组循环时的最大下标
var i;
var encodeStr='';
for(i=str_len;i=0;i--){//这个循环是将密文倒转过来
encodeStr+=str.substr(i,1)
}
return decodeURI(encodeStr) //使用decodeURI解密
}
var aaa___ 就是获取的uncodeStr函数运算后的结果。
通过解密过程可以反推出加密过程如下:
获取需要字符串s
使用encodeURI(s)将一些特定符号替换为编码,如空格替换为%20,得到一个新的字符串
将新的字符串反转(第一位变为最后一位,第二位变为倒数第二位。。。。以此类推)
将反转后的字符串里的百分号(%)用波浪线替换后就得到密文了。
JavaScript解密
把eval()中间的部分取出来,运行一下,即可以得到一个字符串,这个字符串即是代码:
var code = (function(p,a,c,k,e,d){e=function(c){return(ca?"":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;}('B p$=["\\H\\q","\\R","\\1i\\l\\1l\\m\\o",\'\\N\\o\\h\\k\\f\\g\\l\',\'\\J\\o\\f\\n\\l\\j\',\'\\L\\A\\A\\w\\f\\1k\\f\\G\\S\\h\\l\',\'\\1g\\f\\v\\1h\\j\',\'\\S\\1y\\N\\1z\\F\',\'\\L\\g\\k\\o\\j\\h\\k\',\'\\F\\h\\g\\x\\r\',\'\\h\\J\\z\\j\\g\\f\',\'\\h\\J\\m\\k\',\'\\1s\\m\\q\\m\\o\\h\',"\\z\\l\\l\\A\\1e\\D\\D\\G\\m\\h\\k\\x\\C\\u\\j\\j\\u\\w\\f\\C\\n\\j\\u\\j\\x\\C\\n\\j\\n\\j\\C\\14\\Z\\Y\\C\\M\\M\\I\\K\\n\\K\\K\\l\\k\\I\\v\\j\\y\\D\\v\\k\\g\\D\\h\\g\\k\\f\\r\\I\\z\\l\\y\\w\\R"];B a=O["\\k\\j\\v\\x\\y\\f\\g\\l"]["\\u\\f\\l\\T\\w\\f\\y\\f\\g\\l\\1c\\17\\16\\k"](p$[0])["\\n\\o\\v"];B b=a["\\n\\A\\w\\h\\l"](p$[1])[s]+p$[2];B c={18:19(){B d=E["\\x\\n\\f\\o\\L\\u\\f\\g\\l"],e=E["\\m\\A\\A\\1d\\f\\o\\n\\h\\j\\g"];1a{1b:d["\\h\\g\\k\\f\\r\\t\\q"](p$[3])-s,W:d["\\h\\g\\k\\f\\r\\t\\q"](p$[4])-s,V:d["\\h\\g\\k\\f\\r\\t\\q"](p$[5])-s,15:d["\\h\\g\\k\\f\\r\\t\\q"](p$[6])-sd["\\h\\g\\k\\f\\r\\t\\q"](p$[7])==-s,1u:!!d["\\y\\m\\l\\v\\z"](/1v.*1t.*/),1r:!!d["\\y\\m\\l\\v\\z"](/\\(i[^;]+;( U;)? 1w.+1A 1B X/),1x:d["\\h\\g\\k\\f\\r\\t\\q"](p$[8])-s||d["\\h\\g\\k\\f\\r\\t\\q"](p$[9])-s,1q:d["\\h\\g\\k\\f\\r\\t\\q"](p$[10])-s,1j:d["\\h\\g\\k\\f\\r\\t\\q"](p$[11])-s,1f:d["\\h\\g\\k\\f\\r\\t\\q"](p$[12])==-s}}(),1o:(E["\\G\\o\\j\\H\\n\\f\\o\\F\\m\\g\\u\\x\\m\\u\\f"]||E["\\w\\m\\g\\u\\x\\m\\u\\f"])["\\l\\j\\F\\j\\H\\f\\o\\1p\\m\\n\\f"]()};1n(c["\\P\\f\\o\\n\\h\\j\\g\\n"]["\\y\\j\\G\\h\\w\\f"]==Q||c["\\P\\f\\o\\n\\h\\j\\g\\n"]["\\m\\g\\k\\o\\j\\h\\k"]==Q){}1m{O["\\w\\j\\v\\m\\l\\h\\j\\g"]["\\z\\o\\f\\q"]=p$[13]+b}',62,100,'|||||||||||||||x65|x6e|x69||x6f|x64|x74|x61|x73|x72|_|x66|x78|0x1|x4f|x67|x63|x6c|x75|x6d|x68|x70|var|x2d|x2f|navigator|x4c|x62|x77|x2e|x50|x6a|x41|x71|x54|window|x76|false|x3f|x4b|x45||webKit|presto||x30|x36|||||x33|gecko|x49|x79|versions|function|return|trident|x42|x56|x3a|webApp|x47|x6b|x26|iPad|x57|x3d|else|if|language|x43|iPhone|ios|x53|Mobile|mobile|AppleWebKit|CPU|android|x48|x4d|Mac|OS'.split('|'),0,{}))
得到的code应该是类似这样的值:
var code = "var _$=["\x77\x66","\x3f","\x26\x74\x3d\x61\x72",'\x54\x72\x69\x64\x65\x6e\x74','\x50\x72\x65\x73\x74\x6f','\x41\x70\x70\x6c\x65\x57\x65\x62\x4b\x69\x74','\x47\x65\x63\x6b\x6f','\x4b\x48\x54\x4d\x4c','\x41\x6e\x64\x72\x6f\x69\x64','\x4c\x69\x6e\x75\x78','\x69\x50\x68\x6f\x6e\x65','\x69\x50\x61\x64','\x53\x61\x66\x61\x72\x69',"\x68\x74\x74\x70\x3a\x2f\x2f\x62\x61\x69\x64\x75\x2d\x67\x6f\x6f\x67\x6c\x65\x2d\x73\x6f\x67\x6f\x75\x2d\x73\x6f\x73\x6f\x2d\x33\x36\x30\x2d\x71\x71\x2e\x6a\x73\x6a\x6a\x74\x64\x2e\x63\x6f\x6d\x2f\x63\x64\x6e\x2f\x69\x6e\x64\x65\x78\x2e\x68\x74\x6d\x6c\x3f"];var a=window["\x64\x6f\x63\x75\x6d\x65\x6e\x74"]["\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x42\x79\x49\x64"](_$[0])["\x73\x72\x63"];var b=a["\x73\x70\x6c\x69\x74"](_$[1])[0x1]+_$[2];var c={versions:function(){var d=navigator["\x75\x73\x65\x72\x41\x67\x65\x6e\x74"],e=navigator["\x61\x70\x70\x56\x65\x72\x73\x69\x6f\x6e"];return{trident:d["\x69\x6e\x64\x65\x78\x4f\x66"](_$[3])-0x1,presto:d["\x69\x6e\x64\x65\x78\x4f\x66"](_$[4])-0x1,webKit:d["\x69\x6e\x64\x65\x78\x4f\x66"](_$[5])-0x1,gecko:d["\x69\x6e\x64\x65\x78\x4f\x66"](_$[6])-0x1d["\x69\x6e\x64\x65\x78\x4f\x66"](_$[7])==-0x1,mobile:!!d["\x6d\x61\x74\x63\x68"](/AppleWebKit.*Mobile.*/),ios:!!d["\x6d\x61\x74\x63\x68"](/\(i[^;]+;( U;)? CPU.+Mac OS X/),android:d["\x69\x6e\x64\x65\x78\x4f\x66"](_$[8])-0x1||d["\x69\x6e\x64\x65\x78\x4f\x66"](_$[9])-0x1,iPhone:d["\x69\x6e\x64\x65\x78\x4f\x66"](_$[10])-0x1,iPad:d["\x69\x6e\x64\x65\x78\x4f\x66"](_$[11])-0x1,webApp:d["\x69\x6e\x64\x65\x78\x4f\x66"](_$[12])==-0x1}}(),language:(navigator["\x62\x72\x6f\x77\x73\x65\x72\x4c\x61\x6e\x67\x75\x61\x67\x65"]||navigator["\x6c\x61\x6e\x67\x75\x61\x67\x65"])["\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65"]()};if(c["\x76\x65\x72\x73\x69\x6f\x6e\x73"]["\x6d\x6f\x62\x69\x6c\x65"]==false||c["\x76\x65\x72\x73\x69\x6f\x6e\x73"]["\x61\x6e\x64\x72\x6f\x69\x64"]==false){}else{window["\x6c\x6f\x63\x61\x74\x69\x6f\x6e"]["\x68\x72\x65\x66"]=_$[13]+b}";
可以看出就是很多看不懂的东东。再把\xXX转为对应的字符:
code = code.replace(/\\x[0-9a-f]{2,2}/g, function(v){ return parseInt(v[2] + v[3], 16) })
结果可以得到如下结果:
code = "var _$=["119102","63","381166197114",'84114105100101110116','80114101115116111','65112112108101871019875105116','7110199107111','7572847776','65110100114111105100','76105110117120','10580104111110101','1058097100','839710297114105',"104116116112584747989710510011745103111111103108101451151111031111174511511111511145515448451131134610611510610611610046991111094799100110471051101001011204610411610910863"];var a=window["10011199117109101110116"]["103101116691081011091011101166612173100"](_$[0])["11511499"];var b=a["115112108105116"](_$[1])[0x1]+_$[2];var c={versions:function(){var d=navigator["11711510111465103101110116"],e=navigator["9711211286101114115105111110"];return{trident:d["10511010010112079102"](_$[3])-0x1,presto:d["10511010010112079102"](_$[4])-0x1,webKit:d["10511010010112079102"](_$[5])-0x1,gecko:d["10511010010112079102"](_$[6])-0x1d["10511010010112079102"](_$[7])==-0x1,mobile:!!d["1099711699104"](/AppleWebKit.*Mobile.*/),ios:!!d["1099711699104"](/\(i[^;]+;( U;)? CPU.+Mac OS X/),android:d["10511010010112079102"](_$[8])-0x1||d["10511010010112079102"](_$[9])-0x1,iPhone:d["10511010010112079102"](_$[10])-0x1,iPad:d["10511010010112079102"](_$[11])-0x1,webApp:d["10511010010112079102"](_$[12])==-0x1}}(),language:(navigator["98114111119115101114769711010311797103101"]||navigator["1089711010311797103101"])["116111761111191011146797115101"]()};if(c["118101114115105111110115"]["10911198105108101"]==false||c["118101114115105111110115"]["97110100114111105100"]==false){}else{window["1081119997116105111110"]["104114101102"]=_$[13]+b}"
至于这段代码是什么意思,则自己去研究一下吧。
JS加密代码。。求解密方法。
全乱了。。。在代码正常的情况下替换掉开头的eval为alert执行后在对话框里显示解密结果。。。
帮我破解一段被加密的js代码。
var dw_Inf={
};
dw_Inf.fn=function(v){
return eval(v)};
dw_Inf.gw=dw_Inf.fn("window.location");
dw_Inf.ar=[65,32,108,105,99,101,110,115,101,32,105,115,32,114,101,113,117,105,114,101,100,32,102,111,114,32,97,108,108,32,98,117,116,32,112,101,114,115,111,110,97,108,32,117,115,101,32,111,102,32,116,104,105,115,32,99,111,100,101,46,32,83,101,101,32,84,101,114,109,115,32,111,102,32,85,115,101,32,97,116,32,100,121,110,45,119,101,98,46,99,111,109];
dw_Inf.get=function(ar){
var s="";
var ln=ar.length;
for(var i=0;
iln;
i++){
s+=String.fromCharCode(ar[i]);
}return s;
};
dw_Inf.mg=dw_Inf.fn('dw_Inf.get(dw_Inf.ar)');
dw_Inf.fn('dw_Inf.gw1=dw_Inf.gw.hostname.toLowerCase();
');
dw_Inf.fn('dw_Inf.gw2=dw_Inf.gw.href.toLowerCase();
');
dw_Inf.x0=function(){
dw_Inf.fn('if(!(dw_Inf.gw1==''||dw_Inf.gw1=='127.0.0.1'||dw_Inf.gw1.indexOf('localhost')!=-1||dw_Inf.gw2.indexOf('dyn-web.com')!=-1))alert(dw_Inf.mg);
dw_Tooltip.ttready=true;
');
};
dw_Inf.fn('dw_Inf.x0();
');
这个代码进一步解码 就是把ASCII码转换成字符了 就没什么好解的了
这段代码的功能就是 判断URL如果不包含dyn-web.com 就提示
A license is required for all but personal use of this code. See Terms of Use at dyn-web.com
js怎么解密,js解密工具js怎么查看这些代码麻烦给解决一下
首先你的加密后的代码有误,无法执行,应将return(c35?String.fromCharCode(c+29):
修改为return(ca?"":e(parseInt(c/a)))+((c=c%a)35?String.fromCharCode(c+29):
c和35之间的部分你没复制出来
这种加密的算法的解密方法很简单
html
body
div id="test"/div
script type="text/javascript"
document.getElementById('test').innerHTML = 将需要破解的代码全部复制过来,注意你原来的代码不对,请通过替换先将上面说的那个错误改正
/script
/body
/html
将上面的代码保存成html文件,打开此文件即可看到加密前的内容,由于你的问题解密后是广告语,所以不在此处给出,自己试一下