本帖最后由 熊猫拍板砖 于 2022-9-9 14:27 编辑
看到有好几个人找人某鹅通的,然后看了一下,没啥改变,最多就是多了sign,t,us,三个参数,然而并没有什么卵用,这三个参数不是前端计算出来的,是由服务端返回的m3u8链接里携带的
然后是他的m3u8的链接解密方法没变,替@#$%这四个特殊符号对应为1234,然后base64解码,然后就得到了链接,
就看到有的人说是这样不下来,这里要注意一下,新的鹅通,增加了对referer,host,origin的校验(我猜的),因为懒,我就全加上了,这个加哪里?加到m3u8的请求和ts的请求里
下面上图把,上面能说的都说了
https://encrypt-k-vod.xet.tech/9764a7a5vodtransgzp1252524126/303668865285890805998598645/drm/v.f230.m3u8?sign=abd9da59763f0e76a24b5cbeedc75e33&t=63179521&us=tIUsICQQDp&whref=https://www.52pojie.cn/*.xiaoe-tech.com,*.xiaoeknow.com,*.xeknow.com
这个是m3u8链接,链接,从哪里来的?
https://{appid}.h5.xiaoeknow.com/xe.course.business.video.detail_info.get/2.0.0
是在上面这个post请求里来的,请求里有两个参数,
bizData[resource_id]: v_5f292836e4b000e568e1abae
bizData[product_id]: p_5f28c201e4b0822d26882a00
bizData[opr_sys]: MacIntel
bizData[resource_id]和bizData[product_id]这两个值就是你当前页面的网址链接里的值
https://appid.h5.xiaoeknow.com/p/course/video/v_5f292836e4b000e568e1abae?product_id=p_5f28c201e4b0822d26882a00
结果就在下面了
这里要注意,蓝圈里的是音频链接,不需要去管他,因为他是给转音频使用的,和我们无关
在这里,拿到红圈里的编码,是不是很乱?没关系,让我们用python走一趟,这里就不看js代码了,我懒,想要定位,自己搜d.a.decrypt
暂且称之为混淆吧
"W$siZGVmaW5pdGlvbl9uYW@lIjoiXHU5YWQ%XHU#ZTA@IiwiZGVmaW5pdGlvbl9wIjoiNzIwUCIsInVybCI6Imh0dHBzOlwvXC9lbmNyeXB0LWstdm9kLnhldC50ZWNoXC85NzY0YTdhNXZvZHRyYW5zZ$pwMTI@MjUyNDEyNlwvMzAzNjY%ODY@Mjg@ODkwODA@OTk%NTk%NjQ@XC9kcm@cL$YuZjIzMC5tM$U%P$NpZ#%9YWJkOWRhNTk$NjNmMGU$NmEyNGI@Y#JlZWRjNzVlMzMmdD0#MzE$OTUyMSZ@cz@0SVVzSUNRUURwJndocmVmPSoueGlhb#UtdGVjaC5jb#0sKi5%aWFvZWtub$cuY#9tLCoueGVrbm9$LmNvbSIsImlzX$N@cHBvcnQiOmZhbHNlLCJleHQiOnsiaG9zdCI6Imh0dHBzOlwvXC9lbmNyeXB0LWstdm9kLnhldC50ZWNoIiwicGF0aCI6Ijk$NjRhN#E@dm9kdHJhbnNnenAxMjUyNTI0MTI#XC8zMDM#Njg%NjUyODU%OTA%MDU5OTg@OTg#NDVcL#RybSIsInBhcmFtIjoic#lnbj@hYmQ5ZGE@OTc#M#YwZTc#YTI0YjVjYmVlZGM$NWUzMyZ0PTYzMTc5NTIxJnVzPXRJVXNJQ@FRRHAmd#hyZWY9Ki5%aWFvZS@0ZWNoLmNvbSwqLnhpYW9la#5vdy5jb#0sKi5%ZWtub$cuY#9tIn@9XQ==__ba"
解密结果:https://encrypt-k-vod.xet.tech/9764a7a5vodtransgzp1252524126/303668865285890805998598645/drm/v.f230.m3u8?sign=abd9da59763f0e76a24b5cbeedc75e33&t=63179521&us=tIUsICQQDp&whref=https://www.52pojie.cn/*.xiaoe-tech.com,*.xiaoeknow.com,*.xeknow.com
你们可以比对一下是不是和上面拿到的一样
下面开始了
按照我们上面所说,增加了对referer,host,origin的校验,具体哪一个,我猜是referer,懒得改,梭哈
这不就行了吗,然后获取key和VI我就不展示了,正则还是啥的你们随意
之后就是key的请求,没有任何添加剂,直接请求就行,header都不用管
然后就是ts的请求,注意,这里ts文件的请求也要携带上述的协议头
然后解密嘛,就是aes,用AES.MODE_CBC就行,因为python 的AES 对 key 和IV的要求本身就是byte类型,所以,key不需要转换成字符串,请求回来byte类型直接用
IV的话自己填充0或者就正则出来,正则出来是字符串类型,所以用 bytes.fromhex(IV)就行
AES.new(key,AES.MODE_CBC,bytes.fromhex(IV))
然后就是请求ts去解密就行,解完了保存到文件,然后就搞定了
我放一张跑出来的 ts 图
我这张图只能这么截,因为后面是中断的报错信息,哈哈哈哈,就这样可以了
代码自己写
使用逍遥一仙大佬的 M3U8批量器 的小伙子们
只要在->自定义协议头 里面自己把我上面说的那些个添加上,就可以了(我猜的,应该可以,原理一样),甚至都不需要你单独去获取key,把m3u8抓出来写上去就行
还有一点是用逍遥一仙大佬的 m3u8 器的时候,在自定义协议头里不要写host字段
对于只能微信小程序或者浏览器观看的同样有效
自定义协议头为以下几个:
X-Playback-Session-Id:这个随便写一个抓到的
Referer:这个貌似是统一的 https://servicewechat.com/
User-Agent:这里写抓到的包里的
大佬们别喷我,🙏
听我说谢谢你,因为有你,温暖了四季