这个不是加密,是ASCII码的16进制形式表示,你把数组里的每段代码复制出来然后alert出来就明白了
解码如下:
var _0xale7=[script src="/m1938/public/js/jquery.js"/script
,write,
script src="/m1938/public/js/jquery-autocomplete.js"/script
,script src="/m1938/public/js/jquery-lazyload.js"/script
,script src="/m1938/public/js/home.js"/script
,script src="/m1938/public/js/jquery-tab.js"/script
]
下面的
document[_0xa1e7[1]](_0xa1e7[0]); 这个说的是_0xale7[1]这个数组里第2个的值,也就是write;
简单来说就是实现了下面这个功能
documeny.write('script src="/m1938/public/js/jquery.js"/script');
就是在网页中插入数组中的第一个值jquery
下面的类似一样的道理
像这样的混淆代码, 最终都会调用eval来运行加密的代码
观察你给的这一段, 发现\u0065\u0076\u0061\u006c, 刚好就代表了eval函数
把它删去再运行这一段得到
var _token = "jmm8qvq";
後面还有一段很长的, 同理删去eval函数就能得到原始代码
解密后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,得到一个新的字符串
将新的字符串反转(第一位变为最后一位,第二位变为倒数第二位。。。。以此类推)
将反转后的字符串里的百分号(%)用波浪线替换后就得到密文了。
这个只是一个汉字的unicode编码.
告诉楼主一个简单的方法.把上面的代码放入UltraEdit中,把"\"替换为"%",然后去 解码,复制代码.解密.
最后附上我解密后的代码
var owner = "2278749";var sf_mess_cfg = {theme:"classic",color:"blue",title:"欢迎给我们留言",send:"发送",copyright:"百度提供技术支持",mbpos:"RD"};var sf_mess_msg = {emailErr: '请填写正确的Email',messErr: '您的留言字数已超过限制,请保留在1000个字以内。',prefix: '请填写',success: '我们已经收到您的留言,稍候会与您联系.谢谢!',fail: '您的留言发送失败,请重试。'};var sf_mess_cols = [{type:"textarea",mbtype: "message",tip: "留言内容",innertip: "请在此留言,我们会及时联系您",idname: "content"},{type:"text",mbtype: "tel",tip: "手机号码",innertip: "请输入您的手机号码",idname: "phone"}];document.write('script src="" type="text/javascript"/script');