V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
daiv
V2EX  ›  程序员

怎么抓取网页 flash 中的交互数据? (关于 HTTP.Flash 抓包)

  •  
  •   daiv · 2016-03-09 13:45:19 +08:00 · 23713 次点击
    这是一个创建于 3174 天前的主题,其中的信息可能已经有所发展或是发生改变。
    需要从一个 Flash 中分析数据源。
    找了结构相似的 bet.365 来做练手,正好可以获取 NBA 的比分。

    尝试了 chrome 的 F12 开发者工具,发现抓不到相应的数据, websocket 是空的。
    就继续尝试 Fiddler2 , Charles ,都没能抓到。
    wireshark 也尝试了,可惜不太会用。(如果 wireshark 能够搞定,我就多花点时间学一下)

    希望大家指点一下方向,谢谢。

    目标: http://gg.gg/nba365 ( “滚球盘”中的数据:篮球,足球的实时更新的比分 )
    第 1 条附言  ·  2016-03-09 16:31:17 +08:00
    结贴了,搞不定呀!
    谢谢大家!
    20 条回复    2017-11-01 13:42:03 +08:00
    owt5008137
        1
    owt5008137  
       2016-03-09 13:55:51 +08:00 via Android   ❤️ 1
    chrome 的开发工具和 fiddler 都只能抓 http 协议的,如果它 flash 里用原生 tcp 或者其他的就抓不到了,这时候只能 wireshark 啦,因为它直接抓网卡数据的。然后你需要学会怎么过滤指定端口或指定程序的数据包然后人工粘包。或者我们以前是写插件粘包和 dump 的
    daiv
        2
    daiv  
    OP
       2016-03-09 13:59:11 +08:00
    @owt5008137 谢谢,那我今天下午尝试用 wireshark 抓 socket ,看是不是数据在里面。 以前 chrome 的工具能看见 websocket
    owt5008137
        3
    owt5008137  
       2016-03-09 14:03:23 +08:00 via Android   ❤️ 1
    @daiv 对的, websocket 也可以,我以前也看到过,没太注意忘记了。主要是 wensocket 的握手阶段也走的 http 协议
    daiv
        4
    daiv  
    OP
       2016-03-09 14:05:10 +08:00
    @owt5008137 如果是 websocket 的话, chrome 是能抓到的。 根据你的了解, flash 实时更新数据 一般用哪些技术?
    daiv
        5
    daiv  
    OP
       2016-03-09 15:30:34 +08:00
    @owt5008137 我先尝试用 科来(类似 wireshark )来分析了一下,发现基本上是 tcp 连接,一个 post 一个回传数据。

    可是我用 python 怎么模拟呢。
    daiv
        6
    daiv  
    OP
       2016-03-09 15:31:21 +08:00
    http://ooo.0o0.ooo/2016/03/09/56dfd1b41093a.jpg
    tees
        7
    tees  
       2016-03-09 15:35:34 +08:00   ❤️ 1
    wireshark 抓 socket
    owt5008137
        8
    owt5008137  
       2016-03-09 15:55:47 +08:00 via Android
    @daiv 呦,这个也挺不错的。你这是要逆向它的协议吗?如果他有加密的话会很难搞。


    我对 python 不熟呦,应该也会有类似 pcap 的 wraper 库吧,刚搜了下有 pypcap ,不知道是不是主流的抓包库。


    实时更新数据和语言没什么关系哦。一般情况下就是两种,第一种 tcp 是双工的通道,可以直接推送。第二种就是心跳包,如果有数据的话心跳包的回包带回。


    以前 webqq 就是第二种心跳包的形式,所以你会一直在抓包工具里看到心跳交互。你这个看起来也像心跳包,每次收到回包后 3 秒后发下一次心跳
    daiv
        9
    daiv  
    OP
       2016-03-09 16:20:17 +08:00
    @owt5008137 为了获取这个,太难了,我从别处弄这个数据吧。 再次感谢你。


    @tees 我试了,抓到了很多 tcp 的包,可是能不能从所有的 response 中进行全文搜索吗?
    daiv
        10
    daiv  
    OP
       2016-03-09 16:22:02 +08:00
    @owt5008137 对了,科来其中一款 free ,非常非常直观。 tcp 的握手这些都有显示。有需要你可以看看。 还以为这些可以简单的 模拟 post get 这样来搞定。
    owt5008137
        11
    owt5008137  
       2016-03-09 16:24:28 +08:00 via Android
    @daiv ok 。先 mark 一下,碰到需要的话我去瞧瞧看
    fishioon
        12
    fishioon  
       2016-03-09 16:33:51 +08:00   ❤️ 2
    daiv
        13
    daiv  
    OP
       2016-03-09 17:10:54 +08:00
    @fishioon 马上去尝试一下
    mxi1
        14
    mxi1  
       2016-03-09 20:29:25 +08:00 via iPhone
    @daiv 这个图床的域名很奇特,哈哈哈
    pynix
        15
    pynix  
       2016-03-09 20:53:39 +08:00
    如果是私有协议的话还是挺坑的
    daiv
        16
    daiv  
    OP
       2016-03-09 23:07:47 +08:00
    @mxi1 我改掉了,所以跳转到 google 了
    pyengwoei
        17
    pyengwoei  
       2016-05-05 18:02:22 +08:00   ❤️ 1
    @daiv 兄弟能给个你的联系方式吗,同样做 BET365 练手的 路过
    Kilovolt
        18
    Kilovolt  
       2016-09-22 00:59:25 +08:00
    先发编译看 swf 是如何发包的 如果是 http 就 fd 抓包 socket 的就 wirshark 抓包 然后问题来了 wirshark 要怎么过滤找到 flash 发送的数据包呢? 我现在也遇到同样的问题。。。。
    daiv
        19
    daiv  
    OP
       2016-10-17 11:53:32 +08:00
    @pyengwoei 可以呀。

    @Kilovolt 还是有点难的,我都快放弃这样的,有空的时候 跳转一下
    pxpwoa123
        20
    pxpwoa123  
       2017-11-01 13:42:03 +08:00
    @daiv 搞定了吗?同感兴趣
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1102 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 23:28 · PVG 07:28 · LAX 15:28 · JFK 18:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.