抖音web直播数据采集 学习资源 Web逆向 原创

冬晨夕阳 1月前 1442

本案例是基于RPC的抖音web直播数据采集。还原protobuf协议的可以参考《抖音web-protobuf》


文章内容仅供参考学习,如有侵权请联系作者进行删除
可采集内容和页面呈现内容相同,包括用户评论、关注、谁来了、送礼物等数据。



RPC(Remote Procedure Call)是远程调用的意思。

在Js逆向时,我们本地可以和浏览器以服务端和客户端的形式通过websocket协议进行RPC通信,这样可以直接调用浏览器中的一些函数方法,不必去在意函数具体的执行逻辑,可以省去大量的逆向调试时间。

像抖音直播间的数据传输采用的是protobuf,如果完全解析的话实在是浪费时间,不适合做案例教程。

还有重要的一点是,通过RPC的方法可以不用搞加密参数signature,开一个页面就可以了。


接口分析

首先通过控制台进行抓包,普通的get请求。有加密参数signature,不过我们不需要搞。

在这里插入图片描述


返回的是经过 protobuf 序列化数据。


在这里插入图片描述


response里面有关键字 WebxxxxMessage 。


在这里插入图片描述


其实全局直接搜message就行


在这里插入图片描述

进来接着搜,这里response.decode看起来像,所以断点调试。

其实最拼的就是每个像的地方都断点。

在这里插入图片描述


然后调试发现在 var r = s.im[o].decode(n) ,这里返回的解码后的数据。


所以说在这里进行RPC就行。


文件覆盖

首先需要修改和替换它的Js文件,为了方便操作和讲解,我选择通过控制台的Overriders来进行Js文件替换。当然也可以选择通过Fiddler、Mitmproxy等抓包工具替换,或者通过Google的GRPC协议来进行Js内容替换。


在Source中选择Overrides,然后创建一个本地目录。 Enable Local Overrides 需要勾选。


在这里插入图片描述


然后在没有格式化的Js文件上右键点击Save for overrides。

在这里插入图片描述

接下来就可以进行修改了,将格式化后的代码复制到我们save的文件中,然后ctrl+s进行保存。


RPC调用

接着我们要做的是在一个位置创建一个websocket连接来供我们进行RPC调用。

首先要确定注入位置,我们需要添加的websocket客户端JS代码位置在这个 var r = s.im[o].decode(n) 下面。


代码如下:

在这里插入图片描述

不能单纯的在该函数中写入创建客户端,这样会导致死循环,无限创建客户端。所以需要进行代码上的判断,如果已经创建过就不再进行创建客户端。

接下来定义自己的服务端代码就可以进行测试了。 python代码在博客原文中。


运行示例

我没有更进一步的去解析,你可以根据方法名提取对应数据。

在这里插入图片描述


为了做一些推广,回复可见的内容是专栏地址,有很多案例,以及该文章的源码。




最新回复 (60)
  • puchao 6天前
    0 61
    666
  • 张通 7天前
    0 60
    1
  • 0 59
    看下其中奥秘
  • 七仔 10天前
    0 58
    3333
  • Devin 12天前
    0 57
    6666
  • 0 56
    66
  • nice 12天前
    0 55
    666
  • dj31 13天前
    0 54
    666
  • Calitibs 14天前
    0 53
    666
  • adminx 14天前
    0 52
    666
  • Gw1 14天前
    0 51
    666
  • 0 50
    牛啊牛啊
  • a1233323 15天前
    0 49
    111111
  • wpwpahj 15天前
    0 48
    牛哇牛哇
  • dongyf 16天前
    0 47
    1
  • franky 19天前
    0 46
    666
  • 001 19天前
    0 45
    fffffffffffffffffffffff
  • wkaanig 19天前
    0 44
    6666
  • dySpider_ 20天前
    0 43
    66
  • liujiaxing 22天前
    0 42
    11
  • Imlifelong 22天前
    0 41
    学习学习
  • 凌点 23天前
    0 40
    111
  • 0 39
    1
  • 0 38
    666
  • osin 23天前
    0 37
    666
  • 吴先生 25天前
    0 36
    11111111111111
  • zeng98823 25天前
    0 35
    1
  • 0 34
    学习
  • creative 25天前
    0 33
    dddd
  • night_king 26天前
    0 32
    dddd
  • 0 31
    6666
  • Martin 26天前
    0 30
    学习
  • 魁星 26天前
    0 29
    11
  • Wallace 27天前
    0 28
    6666
  • zgjsjdcsh 27天前
    0 27
    22222
  • 唐宋 28天前
    0 26
    111
  • 0 25
    111111111111111111111111111
  • rezalt 29天前
    0 24
    11111
  • 0 23
    666
  • sophia 1月前
    0 22
    111
  • shawn 1月前
    0 21
    1111
  • night123 1月前
    0 20
    666
  • CLAY_Gan 1月前
    0 19
    1
  • 0 18
  • yyjjjj 1月前
    0 17
    1
  • lol_olo 1月前
    0 16
  • shinsbo 1月前
    0 15
    666666
  • 小白 1月前
    0 14
    666
  • admin12 1月前
    0 13
    666
  • 0 12
    ggg
  • jdf000 1月前
    0 11
    66666
  • Lw 1月前
    0 10
    66
  • 0 9
    666
  • xxr 1月前
    0 8
    牛蛙牛蛙
  • 0 7
    111
  • dong 1月前
    0 6
    ok
  • smart 1月前
    0 5
    111
  • nanxun 1月前
    0 4
    111
  • dada0623 1月前
    0 3
    牛哇牛哇
  • 0 2
    111111
返回