js点赞后刷新页面_js逆向 | 解决某歌直播响应加密

      重要的不是你从哪里来,而是你到哪里去,找准方向,继续努力。

85180bad57f3c022a46d09f959cf5e2b.png

1、接口分析

aHR0cHM6Ly9rZy5xcS5jb20vemh1Ym8vaW5kZXguaHRtbD9yb29taWQ9NjA5Yjk5ODYyMzJmM2U4OQ==

注意:目标链接由某歌直播分享得到,如上方链接未在直播状态,请自行更换直播链接。

一、抓包

清空请求并刷新页面,点击xhr查看,其中get_msg接口一直在有规律的新增,结合弹幕的实时性,可以确定响应内容由get_msg接口返回。

二、分析请求参数

677e73634e7e409ec668539b064e0b52.png

Params中:tinyid,a2需要获取,reqtime为当前时间,其他参数为固定值 Form Data 中: StartSeq,Key需要获取, HoldTime 固定值为90

558e6391ca326eb40458076bed26171b.png

简单说下,请求涉及到的参数都不是加密生成的,是由首次刷新页面生成的,相信大家都可以找到。 需要注意的是 Key, StartSeq 的值(除了初始外 )后续都是 在 前一 次的响 应 中 获取 的。

三、分析响应字段

7dade0c37b1d8589327b9ee25e5e2480.png

7fd83398199922102a3f3f111eb39e42.png

对比多个get_msg响应内容,在响应的RspMsgList当中,涉及到事件类型分别是6、5、3。其中6代表初始事件,在页面刷新后出现一次,可忽略。而 3、 5事件 ,后续不断新增,并且可以找 到 弹幕文字加 密后的字段。

2、定位解密js函数

方法:搜索需要解密的响应字段

一、通过响应字段分析,确定需要解密的字段是UserDefinedField和Text,考虑到Text比较常见,这里直接全局搜索UserDefinedField。

83203a66ab1cbf28c43a1e3887f4c8a9.png

二、点击第一个user.js文件,进入文件当中并搜索UserDefinedField。

f3d268cc4900263cb50ee2c415b68644.png

1986行打上断点,可以看到if条件里的值,就是get_msg响应的UserDefinedField的值,紧接着就是解密的实现代码,继续向上查找,可以看到1964行,if条件里的值就是get_msg响应的Text内容。

3、测试构造的js

一、构造解密js文件

9a4f9d396e09cb99f86649de26760a63.png

移动鼠标到解密函数部位,点击跳转,copy涉及到的函数 base64 , Taf,   proto_room,注意copy函数的完整 性。

二、构造入口

5ee855974c3d71acfe619bd1a4e82a43.png

因为在原js解密部分,存在无法解密字段的情况,所以入口构造处针对异常,直接返回空。

三、测试js文件

73b19b84bcb030d227bf676d7107c55b.png

解密完成,响应中包含弹幕信息,用户信息等。

143266ecb92bd1bb528b5d6ddb07797f.png

公众号:逆向旅行

微信号:fzcoder888888

定期分享Python进阶技术,爬虫

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值