接下来说正经
------------------------------------------------------------
相对于其他的,这个比较简单
首先打开虎牙地址,这里以陈翔六点半直播间为例
https://m.huya.com/cxldb
为什么要是手机页面,因为pc采用的是p2p +wss播放,因此抓不到地址
转为手机页面可以拿到m3u8或者flv,都是支持播放的。
右键查看源代码,用谷歌的自动换行,找到liveLineUrl
就是他的播放地址,经验而谈是经过base64编码的
解码后
image.png (67.05 KB, 下载次数: 0)
下载附件
解码
2022-3-14 14:59 上传
貌似已经拿到了地址,是不是本帖子就可以结束了
其实并不,打开链接就发现大写的403
image.png (28.04 KB, 下载次数: 2)
下载附件
403
2022-3-14 15:01 上传
这时发现事情并没有那么简单
既然这样,我们用猫抓抓取一下地址
image.png (27.78 KB, 下载次数: 0)
下载附件
猫抓地址
2022-3-14 15:02 上传
对比发现。格式不一样就算了,还多了一些参数,也还有一些参数不一样。
既然这样,就拿出我们常用的f12大法干他
image.png (100.8 KB, 下载次数: 2)
下载附件
f12
2022-3-14 15:10 上传
找到播放的地址发现是https://hd.huya.com/cdn_libs/mobile/hysdk-m-v1.1.8.js发出的
点进行,格式化代码,在重新看
image.png (45.04 KB, 下载次数: 2)
下载附件
格式化
2022-3-14 15:14 上传
点进去直接打断点,刷新网页发现真实的地址已经出来了。
说明这个不对,在继续下一个函数,依次
image.png (58.87 KB, 下载次数: 2)
下载附件
2022-3-14 15:35 上传
分析发现这里有处理,从上往下调试
进入了initInfo
image.png (66.81 KB, 下载次数: 2)
下载附件
2022-3-14 15:42 上传
image.png (25.99 KB, 下载次数: 1)
下载附件
2022-3-14 15:43 上传
发现这里对参数进行了重新组合并加了一些参数,那我们就进去看看
这里面可以拿到uid,seqid
image.png (46.65 KB, 下载次数: 1)
下载附件
2022-3-14 15:47 上传
Kt函数拿到s,加密的内容直接在console里运行一下
image.png (9.86 KB, 下载次数: 0)
下载附件
2022-3-14 15:50 上传
这里的this[ue] = uid + 时间戳;反复调试发现uid这边浏览器固定1461688433250
那么这里的s是kt函数算出来的,这里分析到s是32位字串符,所以大胆尝试了一下进行md5加密
惊奇的发现居然加密出来的结果一致。
s = 8d65ba8cea56988758faf83030e36852
r = uid = 1461688433250
n = this[Qt].replace(ce, r).replace(de, this[ae]).replace(pe, s).replace(fe, this[zt]);
调试发现Qt = _fm这不就是之前解码的参数fm吗,
对fm值进行base64解码得到DWq8BcJ3h6DJt6TY_$0_$1_$2_$3
最后将$0 $1 $2 $3替换成r this[ae] s this[zt]
image.png (33.28 KB, 下载次数: 0)
下载附件
2022-3-14 16:03 上传
var o = "".concat(ie).concat(Oe).concat(Kt(n)).concat(Re).concat($t).concat(Oe).concat(this[zt]).concat(Re).concat(he).concat(Oe).concat(this[ue]).concat(Re).concat(ee).concat(Oe).concat(this[te]).concat(Re).concat(Le);
最后就是拼接参数
里面又对n进行了md5加密
$o = "wsSecret=$wsSecret&wsTime=$_wsTime&seqid=$_seqid&ctype=$_ctype&ver=1";
最后又拼接上了其余剩余参数
image.png (15.04 KB, 下载次数: 0)
下载附件
2022-3-14 16:10 上传
至此i已经处理出来了
然后拼接上&uid=1461688433250&uuid=2210393474&t=103&sv=2110211124
发现uuid是动态的,在搜索一下uuid的生成
this.uuid = Number((Date.now() % 1e10 * 1e3 + (1e3 * Math.random() | 0)) % 4294967295))
最后修改域名为al.flv.huya.com m3u8修改为.flv
image.png (38.88 KB, 下载次数: 0)
下载附件
2022-3-14 16:19 上传
image.png (313.47 KB, 下载次数: 0)
下载附件
2022-3-14 16:19 上传
测试播放1小时正常。至此本贴结束,说的有点模糊,希望可以动手试试
huya.zip
(1.66 KB, 下载次数: 610)
2022-3-14 16:21 上传
点击文件名下载附件
下载积分: 吾爱币 -1 CB