[原创]百度访问统计柱状图表再次解密(3)-eval破解

2013-03-21Javascript1990

[原创]百度访问统计柱状图表再次解密(3)

第2篇知道了匿名函数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))};

它的作用是把c转换成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 -- ) {d[e(c)] = k[c] || e(c)}

到d[e(c)]计算出e(c)的值。

传过来的初始值c=75,c -- 后c=74,那么通过运算e(74)="1c",这样就成了d["1c"]=k[74]||e(74);

看前面的2篇知道k[75]=“tity”;这样就转换成了d["1c"]="tity";

传过来的c=75所以要执行75次这样的d[]转换。就是通过e()将数组k中的值转换到数组d中。

转换完成后d中的键值和对应的值;

1c "tity"

1b "hit"

1a "chart"

19 "offsetHeight"

18 "Create"

17 "return"

16 "round"

15 "Math"

14 "getElementById"

13 "titxhl"

12 "u65e5"

11 "u6708"

10 "indexOf"

9 "var"

8 "document"

7 "px"

6 "style"

5 "this"

4 "4"

3 "3"

2 "2"

1 "1"

0 "0"

A "A"

B "B"

C "C"

D "D"

E "E"

F "F"

G "G"

H "H"

I "I"

J "J"

K "K"

L "display"

M "titx"

N "else"

O "maxpv"

P "prototype"

Q "for"

R "parent"

S "parseInt"

T "onmouseover"

U "42"

V "barhl"

W "onmouseout"

X "liney"

Y "35px"

Z "none"

a "className"

b "charth"

c "length"

d "yl"

e "all"

f "ohit"

g "left"

h "innerHTML"

i "createElement"

j "appendChild"

k "div"

l "substring"

m "top"

n "width"

o "xl"

p "function"

q "chartw"

r "barw"

s "if"

t "id"

u "bar"

v "nbsp"

w "Chart"

x "minpv"

y "GetPVHeight"

z "height"

分享:

支付宝

微信