某牙直播flv地址解密

查看 179|回复 10
作者:djmingge   
闲来无事,趁着朋友需要的虎牙直播地址失效了试着又玩玩。要源码在最后
接下来说正经
------------------------------------------------------------
相对于其他的,这个比较简单
首先打开虎牙地址,这里以陈翔六点半直播间为例
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

下载次数, 下载附件

djmingge
OP
  

首先 是研究他的参数加密,如果能直接抓包的话,我就不用写帖子了
麻烦各位大哥评论时先看看标题
dhhddhf   

直接用安卓的via浏览器或者x浏览器嗅探一下不就有了,用不着解密
我是小黄啊   

大佬说的根本看不懂
xiaohuaihai520   

那除了这个其他的直播也能类似弄吗?
hxpz666   

我等小白看不懂,
李佑辰   

看起来不错 学到了 学到了
全体起立   

妹大爷你好
sjz209   

看不懂,只能帮顶了
xiaohuaihai520   


djmingge 发表于 2022-3-14 16:42
虎牙里面的直播,理论是都可以的

没怎么看懂,但大致照着还是可以的吧?
您需要登录后才可以回帖 登录 | 立即注册

返回顶部