王依依

王依依的博客

她的个人主页  她的博客

处理很囧的 javascript 页面

王依依  2009年09月10日 星期四 09:03 | 2842次浏览 | 24条评论

简记

比如  http://dasai.56star.cn/Template/dasai/VoteAdd.js

  
   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; } ('8 B(o,0){$(".v"+0).u("t","");$.4("/n/9.a?b=D&d="+j.l(),{m:"4",A:\'d\'},8(2,f){5(2.7=="i"){x(0,2.h)}6{3("w,r(k)。");q p}},"s")}8 x(0,g){$.4("/n/9.a?b=C&d="+j.l(),{m:"4",E:0,h:g},8(2,f){5(2.7=="i"){3("Q,O。");N c=M($(".y"+0).e());$(".y"+0).e((c+1))}6 5(2.7=="H"){3("G(F)I,L。")}6 5(2.7=="z"){3("z,K。"+2.J)}6{3("w,r。");q p}},"s");$(".v"+0).u("t","P")}', 53, 53, 'nVoteID||data|alert|post|if|else|state|function|Vote|aspx|action|nCount||html|textStatus|szKey|key|success|Math||random|Action|Ajax||false|return|请稍后尝试|json|display|css|VoteLoading|系统忙|VoteAddDB|VoteCount|fraud|szName|MyVoteAdd|VoteToToToTo|GetKey|nVoteFK|他|您已经给她|repeat|投过票了|text|请再偿试|您还可以支持其它人|parseInt|var|谢谢您|none|投票成功'.split('|'), 0, {}))
  
 
  
   这里使用 V8 引擎是最好的选择~ Chrome 核心~
  
 
  
   # easy_install pyv8
  
 
  
   
    In [17]: import PyV8

In [18]: context = PyV8.JSContext()

In [19]: context.enter()

In [20]: import urllib

In [21]: script = urllib.urlopen("http://dasai.56star.cn/Template/dasai/VoteAdd.js").read()

In [22]: context.eval(script)

In [23]: context.locals.keys()
Out[23]: ['MyVoteAdd', 'VoteAddDB']

~ got it.
   
  
 
  
   
    刚好用这搞定 qq 登录的加密~.
   
  
 

评论

我的评论:

发表评论

请 登录 后发表评论。还没有在Zeuux哲思注册吗?现在 注册 !
夏清然

回复 夏清然  2009年09月11日 星期五 23:08

另感慨一下:记得大约是在06年初,在以前公司搜索部门的wiki上看到了一个关于JS解析器的文档链接,进去之后发现是保密的
然后知道认识的一同事是做这个的,想了解一下这个,聊了半天什么都没聊出来...

4条回复

  • 王依依

    回复 王依依  2009年09月11日 星期五 23:29

    v8 很强悍, 在考虑 pyquery 的 v8 实现

    3条回复

      • 范占伟(军旗)

        回复 范占伟(军旗)  2009年09月19日 星期六 08:33

        期待!>>> from gasp import*
        >>> begin_graphics()
        >>> Circle((200,200),60)

        Traceback (most recent call last):
        File "<pyshell#4>", line 1, in -toplevel-
        Circle((200,200),60)
        File "d:\python\lib\site-packages\gasp-0.4.0-py2.4.egg\gasp\api.py", line 170, in __repr__
        return "A Circle instance at (%d, %d) with a radius of %d" %(self.x, self.y, self.radius)
        AttributeError: Circle instance has no attribute 'x'
        如何解决!谢谢

        0条回复

      • 夏清然

        回复 夏清然  2009年09月12日 星期六 15:59

        哦,pyquery?看看先

        1条回复

夏清然

回复 夏清然  2009年09月11日 星期五 23:01

刚刚在桌面装好了pyV8和V8,体验中..

0条回复

居振梁[暴龙]

回复 居振梁[暴龙]  2009年09月11日 星期五 19:45

代码不能格式化一下吗

1条回复

電波系山寨文化科学家

回复 電波系山寨文化科学家  2009年09月11日 星期五 19:38

en... V8引擎,在北美是最好的引擎.

2条回复

李亚橙

回复 李亚橙  2009年09月10日 星期四 16:38

这个ruby貌似没有呢...掩面泪奔...

8条回复

李亚橙

回复 李亚橙  2009年09月10日 星期四 16:35

才知道还能这么玩....泪奔

1条回复

大迷糊

回复 大迷糊  2009年09月10日 星期四 11:10

V8什么时候又搞出个py版呢。

1条回复

暂时没有评论

Zeuux © 2024

京ICP备05028076号