您的位置:首页 > Web前端 > JavaScript

解码类似eval(function(p,a,c,k,e,d){}))的JavaScript代码

2010-04-19 17:21 411 查看
引用 :http://hi.baidu.com/xcb521/blog/item/2ac50dc6253c79d6d1006073.html

这里解码百度访问统计代码构造函数为示例:

百度访问统计代码JavaScript源码:

红色加粗部分将是要修改的地方.

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

}('p
w(E,D,A,C,B){5.R=8.14(E);5.o=D;5.d=A;5.r=(8.e)?C:(C-2);5.q=0;5.b=B+((8.e)?0:-2);5.x=5.d[0];5.O=5.d[5.d.c-1]}w.P.y=p(B){9
A=15.16(((B-5.x)*5.b/(5.O-5.x)))+((8.e)?2:0);s(A>5.b){A=5.b}17
A};w.P.18=p(){9 A=8.i("k");A.a="1a";A.6.z=5.b+"7";5.R.j(A);9
K=8.i("k");A.j(K);K.a="1b";9 J=0;Q(9 G=0;G<5.o.c;G+=2){9
B=5.y(5.o[G]);9 I=5.o[G+1];9
F=8.i("k");A.j(F);F.a="u";F.6.n=5.r+"7";F.6.z=B+"7";F.6.m=5.b-B-1+"7";F.6.g=(J-1)+"7";F.h="&v;";F.f=K;F.T=p(){5.a="V";5.f.6.L="";5.f.h=5.t.l(3,5.t.c);5.f.6.g=5.6.g;5.f.6.m=S(5.6.m)-S(5.f.19)+"7"};F.W=p(){5.a="u";5.f.6.L="Z"};9
E=8.i("k");A.j(E);E.6.n=5.r+"7";E.6.m=(8.e)?5.b:5.b+3+"7";9
C=I.10(".");F.t="u"+I.l(0,C)+"//11"+I.l(C+1,I.c)+"//12&v;&v;"+5.o[G];s(G%4==0){s((I.l(C+1,I.c)=="1"||I.l(C+1,I.c)=="2")){E.a="13";E.6.g=(J-4)+"7";E.h=I}N{E.a="M";E.6.g=(J-1)+"7";E.h=I.l(C+1,I.c)}}N{E.a="M";E.6.g=(J-1)+"7";E.h=""}J+=5.r+((8.e)?-1:1)}5.q=J+((8.e)?1:-1);A.6.n=5.q+"7";Q(9
G=0;G<5.d.c;G++){9 D=5.y(5.d[G]);s(G!=0&&G!=5.d.c-1){9
H=8.i("k");A.j(H);H.a="X";H.6.n=(5.q-((8.e)?1:-1))+"7";H.6.m=(5.b-D-1)+"7"}9

E=8.i("k");A.j(E);E.a="1c";E.6.n="Y";E.6.m=(5.b-D-2)+"7";E.6.g=-U+"7";E.h=5.d[G]}};',62,75,'|||||this|style|px|document|var|className|charth|length|yl|all|ohit|left|innerHTML|createElement|appendChild|div|substring|top|width|xl|function|chartw|barw|if|id|bar|nbsp|Chart|minpv|GetPVHeight|height||||||||||||display|titx|else|maxpv|prototype|for|parent|parseInt|onmouseover|42|barhl|onmouseout|liney|35px|none|indexOf|u6708|u65e5|titxhl|getElementById|Math|round|return|Create|offsetHeight|chart|hit|tity'.split('|'),0,{}));

其实这个eval(function(p,a,c,k,e,d){}))中自带解码函数e().
while(c--){if(k[c]){p=p.replace(new
RegExp('//b'+e(c)+'//b','g'),k[c])}}return p


while循环产生的每个p就是解码后的函数代码,我们删掉源码中的return p,不用将结果返回,

而是直接输出在一个文本区域中,如document.getElementById(”textareaID”).innerText=p.

最终代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<title> Crack Baidu统计构造函数</title>

<meta http-equiv="content-type" content="text/html; charset=UTF-8"
/>

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />

<meta name="Author" content=www.gemingcao.com
/>

<meta name="Keywords" content="" />

<meta name="Description" content="" />  

</head>

<body>
<textarea id="
textareaID
" rows="25"
cols="50"></textarea>


<script
type="text/javascrpt">


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]);document.getElementById('

textareaID').innerText=p;

}}}('p

w(E,D,A,C,B){5.R=8.14(E);5.o=D;5.d=A;5.r=(8.e)?C:(C-2);5.q=0;5.b=B+((8.e)?0:-2);5.x=5.d[0];5.O=5.d[5.d.c-1]}w.P.y=p(B){9
A=15.16(((B-5.x)*5.b/(5.O-5.x)))+((8.e)?2:0);s(A>5.b){A=5.b}17
A};w.P.18=p(){9 A=8.i("k");A.a="1a";A.6.z=5.b+"7";5.R.j(A);9
K=8.i("k");A.j(K);K.a="1b";9 J=0;Q(9 G=0;G<5.o.c;G+=2){9
B=5.y(5.o[G]);9 I=5.o[G+1];9
F=8.i("k");A.j(F);F.a="u";F.6.n=5.r+"7";F.6.z=B+"7";F.6.m=5.b-B-1+"7";F.6.g=(J-1)+"7";F.h="&v;";F.f=K;F.T=p(){5.a="V";5.f.6.L="";5.f.h=5.t.l(3,5.t.c);5.f.6.g=5.6.g;5.f.6.m=S(5.6.m)-S(5.f.19)+"7"};F.W=p(){5.a="u";5.f.6.L="Z"};9
E=8.i("k");A.j(E);E.6.n=5.r+"7";E.6.m=(8.e)?5.b:5.b+3+"7";9
C=I.10(".");F.t="u"+I.l(0,C)+"//11"+I.l(C+1,I.c)+"//12&v;&v;"+5.o[G];s(G%4==0){s((I.l(C+1,I.c)=="1"||I.l(C+1,I.c)=="2")){E.a="13";E.6.g=(J-4)+"7";E.h=I}N{E.a="M";E.6.g=(J-1)+"7";E.h=I.l(C+1,I.c)}}N{E.a="M";E.6.g=(J-1)+"7";E.h=""}J+=5.r+((8.e)?-1:1)}5.q=J+((8.e)?1:-1);A.6.n=5.q+"7";Q(9
G=0;G<5.d.c;G++){9 D=5.y(5.d[G]);s(G!=0&&G!=5.d.c-1){9
H=8.i("k");A.j(H);H.a="X";H.6.n=(5.q-((8.e)?1:-1))+"7";H.6.m=(5.b-D-1)+"7"}9

E=8.i("k");A.j(E);E.a="1c";E.6.n="Y";E.6.m=(5.b-D-2)+"7";E.6.g=-U+"7";E.h=5.d[G]}};',62,75,'|||||this|style|px|document|var|className|charth|length|yl|all|ohit|left|innerHTML|createElement|appendChild|div|substring|top|width|xl|function|chartw|barw|if|id|bar|nbsp|Chart|minpv|GetPVHeight|height||||||||||||display|titx|else|maxpv|prototype|for|parent|parseInt|onmouseover|42|barhl|onmouseout|liney|35px|none|indexOf|u6708|u65e5|titxhl|getElementById|Math|round|return|Create|offsetHeight|chart|hit|tity'.split('|'),0,{}));

</script>


</body>

</html>

保存为html文件,运行.

格式化文本区域中的JavaScript代码,代码如下:

function Chart(E, D, A, C, B) {

    this.parent = document.getElementById(E);

    this.xl = D;

    this.yl = A;

    this.barw = (document.all) ? C: (C - 2);

    this.chartw = 0;

    this.charth = B + ((document.all) ? 0 : -2);

    this.minpv = this.yl[0];

    this.maxpv = this.yl[this.yl.length - 1]

}

Chart.prototype.GetPVHeight = function(B) {

    var A = Math.round(((B - this.minpv) * this.charth / (this.maxpv -
this.minpv))) + ((document.all) ? 2 : 0);

    if (A > this.charth) {

        A = this.charth

    }

    return A

};

Chart.prototype.Create = function() {

    var A = document.createElement("div");

    A.className = "chart";

    A.style.height = this.charth + "px";

    this.parent.appendChild(A);

    var K = document.createElement("div");

    A.appendChild(K);

    K.className = "hit";

    var J = 0;

    for (var G = 0; G < this.xl.length; G += 2) {

        var B = this.GetPVHeight(this.xl[G]);

        var I = this.xl[G + 1];

        var F = document.createElement("div");

        A.appendChild(F);

        F.className = "bar";

        F.style.width = this.barw + "px";

        F.style.height = B + "px";

        F.style.top = this.charth - B - 1 + "px";

        F.style.left = (J - 1) + "px";

        F.innerHTML = " ";

        F.ohit = K;

        F.onmouseover = function() {

            this.className = "barhl";

            this.ohit.style.display = "";

            this.ohit.innerHTML = this.id.substring(3, this.id.length);

            this.ohit.style.left = this.style.left;

            this.ohit.style.top = parseInt(this.style.top) -
parseInt(this.ohit.offsetHeight) + "px"

        };

        F.onmouseout = function() {

            this.className = "bar";

            this.ohit.style.display = "none"

        };

        var E = document.createElement("div");

        A.appendChild(E);

        E.style.width = this.barw + "px";

        E.style.top = (document.all) ? this.charth: this.charth + 3 +
"px";

        var C = I.indexOf(".");

        F.id = "bar" + I.substring(0, C) + "/u6708" + I.substring(C +
1, I.length) + "/u65e5  " + this.xl[G];

        if (G % 4 == 0) {

            if ((I.substring(C + 1, I.length) == "1" || I.substring(C +
1, I.length) == "2")) {

                E.className = "titxhl";

                E.style.left = (J - 4) + "px";

                E.innerHTML = I

            } else {

                E.className = "titx";

                E.style.left = (J - 1) + "px";

                E.innerHTML = I.substring(C + 1, I.length)

            }

        } else {

            E.className = "titx";

            E.style.left = (J - 1) + "px";

            E.innerHTML = ""

        }

        J += this.barw + ((document.all) ? -1 : 1)

    }

    this.chartw = J + ((document.all) ? 1 : -1);

    A.style.width = this.chartw + "px";

    for (var G = 0; G < this.yl.length; G++) {

        var D = this.GetPVHeight(this.yl[G]);

        if (G != 0 && G != this.yl.length - 1) {

            var H = document.createElement("div");

            A.appendChild(H);

            H.className = "liney";

            H.style.width = (this.chartw - ((document.all) ? 1 : -1)) +
"px";

            H.style.top = (this.charth - D - 1) + "px"

        }

        var E = document.createElement("div");

        A.appendChild(E);

        E.className = "tity";

        E.style.width = "35px";

        E.style.top = (this.charth - D - 2) + "px";

        E.style.left = -42 + "px";

        E.innerHTML = this.yl[G]

    }

};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息