帮忙翻译下面这段JS代码,看看是什么加密方式?

eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?... eval(function(p,a,c,k,e,d){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--){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}('k P={2p:f(x){o I.1J(x)},3w:f(x){o I.3v(x)},2e:f(x){o I.3u(x)},2u:f(x){o x.3t()},3x:f(x){o x.1U()},3y:f(){o 1W.3C(1W.3A()*3z)},3s:f(x){k A="";k B="";K(k i=0;i<x.G;i++){k C=x.1k(i).1g(16);3r(C.G){18 1:B="%0";V;18 2:B="%";V;18 3:B="%3k";V;18 4:B="%u";V;3j:V};A+=B+C};o A},2f:f(x){o 1u(x)},3h:f(x){2t{W(x)}2n(1E){1T("错误信息: "+1E.3l)}},3m:f(2a,1r){k Q=I.1t(\'A\');Q.1r=1r||"3q";Q.2c=2a;I.1Z.1f(Q);Q.3o();I.1Z.3n(Q)},3E:f(Z){k 1v=I.27.2q(N 1b("(^| )"+Z+"=([^;]*)(;|$)"));O(1v!=25){o 1u(1v[2])}1c{o 25}},3S:f(Z,1N){k 29=30;k 1d=N 3R();1d.3V(1d.3W()+29*24*28*28*3Y);I.27=Z+"="+3Q(1N)+";3I="+1d.3G()},1l:f(x){o/1l/i.1h(3F.3J)},1S:f(A,B,C){O(r.1l()){3O(\
写不下了 下载地址:http://pan.baidu.com/share/link?shareid=1683883319&uk=657844540
展开
 我来答
sicf
2013-08-07 · TA获得超过916个赞
知道小有建树答主
回答量:584
采纳率:100%
帮助的人:618万
展开全部
这个不是加密方法,是压缩方法,尤其是针对大的JS文件,能压缩到比较小。很多开发性质的JS文档都提供原档和压缩档,譬如jquery.min.js。

想还原原档可以使用工具还原。给你一个地址:
http://e.city0668.com/tools/jsformat.html
在输入框中粘贴内容,然后点击base压缩或者解压即可。
追问
我试过了,不能还原。
追答
var load = {
    id: function(x) {
        return document.getElementById(x)
    },
    name: function(x) {
        return document.getElementsByName(x)
    },
    tags: function(x) {
        return document.getElementsByTagName(x)
    },
    Lcase: function(x) {
        return x.toLowerCase()
    },
    Ucase: function(x) {
        return x.toUpperCase()
    },
    Rnd: function() {
        return Math.floor(Math.random() * 0x7fffffff)
    },
....

http://pan.baidu.com/share/link?shareid=3340412987&uk=3305443129

以上为还原的代码。可能还有一段你不明白,就是

eval(function(s, c, r, i, p, t) {

这个是直接独立执行里面的脚本,和外面的脚本及变量不扯上关系。当然,你也可以将里面的脚本单独拿出来执行。这一段最终结果是由

return p[0](r[1](i[0](r[1](s[0], r[0](c[1](p[1])), c[1](p[2]))), p[3], p[4]))

返回一段脚本字符,再由eval执行。由于缺乏md5函数(应该还有另一个JS文件),无法替你获取具体执行的内容,不过我猜有可能是一段木马或者病毒。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式