求高手帮忙解读下这段JS

eval(function(p,a,c,k,e,d){e=function(c){returnc.toString(36)};if(!''.replace(/^/,Str... eval(function(p,a,c,k,e,d){e=function(c){return c.toString(36)};if(!''.replace(/^/,String)){while(c--){d[c.toString(a)]=k[c]||c.toString(a)}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}('g.f.8=7(d){6 a=1;k(!d){a.e("9-l",$(3).4()/2-1.4()/2);a.e("9-i",$(3).5()/2-1.5()/2);$(3).h(7(){a.8(!d)})}m{6 c=$(3).4()/2-1.4()/2;6 b=$(3).5()/2-1.5()/2;c=(c<0)?0:c;b=(b<0)?0:b;a.n();a.r({j:c,q:b},o,"p")}};',28,28,'|this||window|height|width|var|function|center|margin|||||css|fn|jQuery|resize|left|marginTop|if|top|else|stop|150|linear|marginLeft|animate'.split('|'),0,{}))
请帮我大致解读下这JS如何入口
展开
 我来答
十二乐坊迷
2013-06-14 · 超过42用户采纳过TA的回答
知道小有建树答主
回答量:235
采纳率:0%
帮助的人:116万
展开全部

这段js是经过eval加密混淆的,你要这么读,根本读不下去。帮你解混淆并美化了一下:

jQuery.fn.center = function (d) {
var a = this;
if (!d) {
a.css("margin-top", $(window).height() / 2 - this.height() / 2);
a.css("margin-left", $(window).width() / 2 - this.width() / 2);
$(window).resize(function () {
a.center(!d)
})
} else {
var c = $(window).height() / 2 - this.height() / 2;
var b = $(window).width() / 2 - this.width() / 2;
c = (c < 0) ? 0 : c;
b = (b < 0) ? 0 : b;
a.stop();
a.animate({
marginTop : c,
marginLeft : b
}, 150, "linear")
}
};
追问
这个是用工具美化代码的么
追答
你可以用在线的解密工具和美化工具,百度一搜一大堆。我给你一个。http://www.ostools.net/codeformat/js 这个是格式化工具。解密工具可以用这个:http://www.w3cfuns.com/tools-compression.html
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wswhk
2013-06-14 · TA获得超过7.1万个赞
知道顶级答主
回答量:4.6万
采纳率:68%
帮助的人:7.4亿
展开全部

eval函数的参数是字符串 所以你直接把里面函数返回的字符串运行出来即可

jQuery.fn.center = function (d) {
    var a = this;
    if (!d) {
        a.css("margin-top", $(window).height() / 2 - this.height() / 2);
        a.css("margin-left", $(window).width() / 2 - this.width() / 2);
        $(window).resize(function () {
            a.center(!d)
        })
    } else {
        var c = $(window).height() / 2 - this.height() / 2;
        var b = $(window).width() / 2 - this.width() / 2;
        c = (c < 0) ? 0 : c;
        b = (b < 0) ? 0 : b;
        a.stop();
        a.animate({
            marginTop : c,
            marginLeft : b
        }, 150, "linear")
    }
};
追问
你们是怎么解析成这样的
追答
原理我上面已经说了 就是执行一下里面的函数 得到的返回值就是这个了

网上很多js反混淆的工具 你搜一下也能找到
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式