最近发现的M3U8下载新方式(2022)
(编辑:jimmy 日期: 2024/12/28 浏览:3 次 )
具体是什么平台,什么版本的就不方便直说了,大家看url吧
[JavaScript] 纯文本查看 复制代码
http://hls.videocc.net/b034527feb/d/b034527feb4cd0ab7817207e07f247bd_3.m3u8?pid=1648272254443X1400514&device=desktop
原本我是按照下面帖子的方法进行解密32位的下载key的,基本完成了90%了,已经可以算出seed_const了。
https://www.52pojie.cn/thread-1585958-1-1.html
只要使用seed_const的md5前16位作为解密密钥,固定字符串AQIDBQcLDRETFx0HBQMCAQ==作为解密vi,就能解密32位的下载key。
但是到了这一步,发现解密下载key失败,解密密钥错误,我以为是自己的程序写错了,又使用了论坛大牛们开发的密码工具箱来解密,
虽然能解密出16位下载key,但是在下载工具下载时候提示解码失败,key不正确。
quBSr6.png
quBERA.png
我觉可能是加密方式改了,于是发了求助帖子
https://www.52pojie.cn/thread-1607458-1-1.html
https://www.52pojie.cn/thread-1608121-1-1.html
大牛们说的方法太抽象了,我看不太懂,于是自己也在研究。
终于,在贴里的大牛帮助下,给我发现了一种新的下载方式,比较简单和快捷,适合小白
方法如下(也需要简单的js逆向)
1.打开调试工具,找到这个js,并格式化一下。(因为他压缩了)
1.PNG
2.PNG
2.在js代码里面搜索"decryptdata"关键字,来到大约12706行左右(变量什么的可能有所不同,因为他是压缩过的),放入断点
3.PNG
3.基本上每次视频加载都会调用这个位置的代码,找到"_decryptdata"变量
4.PNG
4.发现里面有一大串json数据,包含了M3U8(baseuri)和key(_uri/reluri)信息
[JavaScript] 纯文本查看 复制代码
{ [b][color=Red]"_uri": "http://hls.videocc.net/playsafe/v1102/b034527feb/d/b034527feb4cd0ab7817207e07f247bd_3.key?token=71e98423-69f1-4460-a045-fd9ce9e7f7ed-0126", "baseuri": "http://hls.videocc.net/b034527feb/d/b034527feb4cd0ab7817207e07f247bd_3.m3u8?pid=1648273704804X1183405&device=desktop", "reluri": "http://hls.videocc.net/playsafe/v1102/b034527feb/d/b034527feb4cd0ab7817207e07f247bd_3.key?token=71e98423-69f1-4460-a045-fd9ce9e7f7ed-0126",[/color][/b] "method": "AES-128", "key": { "0": 242, "1": 155, "2": 231, "3": 3, "4": 138, "5": 225, "6": 46, "7": 25, "8": 219, "9": 1, "10": 158, "11": 253, "12": 61, "13": 0, "14": 88, "15": 211, "16": 84, "17": 252, "18": 214, "19": 248, "20": 28, "21": 47, "22": 215, "23": 178, "24": 226, "25": 94, "26": 251, "27": 73, "28": 109, "29": 155, "30": 232, "31": 110 }, "iv": { "0": 115, "1": 231, "2": 209, "3": 35, "4": 245, "5": 8, "6": 70, "7": 126, "8": 225, "9": 253, "10": 116, "11": 114, "12": 11, "13": 96, "14": 251, "15": 158 }}
我尝试下载key,发现下载下来的key是32位的加密key来的,没用。
5.PNG
4.后来发现将里面的"baseuri" 复制,再在新的浏览器页签打开,会得到一个M3U8文件
[JavaScript] 纯文本查看 复制代码
http://hls.videocc.net/b034527feb/d/b034527feb4cd0ab7817207e07f247bd_3.m3u8?pid=1648273704804X1183405&device=desktop
内容如下
[Asm] 纯文本查看 复制代码
#EXTM3U#EXT-X-VERSION:3#EXT-X-MEDIA-SEQUENCE:0#EXT-X-ALLOW-CACHE:YES#EXT-X-KEY:METHOD=AES-128,[b][color=Red]URI="http://hls.videocc.net/b034527feb/d/b034527feb4cd0ab7817207e07f247bd_3.key"[/color][/b],IV=0x73e7d123f508467ee1fd74720b60fb9e#EXT-X-TARGETDURATION:11#EXTINF:5.043000,http://uc-dts.videocc.net/b034527feb/0/1234567890123/d/f2/47/bd_3/b034527feb4cd0ab7817207e07f247bd_3_0.ts?pid=1648273704804X1183405&device=desktop#EXTINF:5.000000,http://uc-dts.videocc.net/b034527feb/0/1234567890123/d/f2/47/bd_3/b034527feb4cd0ab7817207e07f247bd_3_1.ts?pid=1648273704804X1183405&device=desktop#EXTINF:10.000000,http://uc-dts.videocc.net/b034527feb/0/1234567890123/d/f2/47/bd_3/b034527feb4cd0ab7817207e07f247bd_3_2.ts?pid=1648273704804X1183405&device=desktop#EXTINF:10.000000,http://uc-dts.videocc.net/b034527feb/0/1234567890123/d/f2/47/bd_3/b034527feb4cd0ab7817207e07f247bd_3_3.ts?pid=1648273704804X1183405&device=desktop#EXTINF:10.000000,http://uc-dts.videocc.net/b034527feb/0/1234567890123/d/f2/47/bd_3/b034527feb4cd0ab7817207e07f247bd_3_4.ts?pid=1648273704804X1183405&device=desktop#EXTINF:10.000000,......省略.....
发现M3U8文件的URI里面也有一个key下载地址,直接访问他,发现无法下载。
6.PNG
于是我对比了一下两个key下载地址,发现他们之间只差一个token
[Asm] 纯文本查看 复制代码
_decryptdata里面的"_rui"(key下载地址):http://hls.videocc.net/playsafe/v1102/b034527feb/d/b034527feb4cd0ab7817207e07f247bd_3.key?token=71e98423-69f1-4460-a045-fd9ce9e7f7ed-0126M3U8文件里面的"URI"(key下载地址):http://hls.videocc.net/b034527feb/d/b034527feb4cd0ab7817207e07f247bd_3.key
5.将M3U8文件内"URI"的地址复制到浏览器,再把"_decryptdata"里面的"_uri"的token(比如:token=71e98423-69f1-4460-a045-fd9ce9e7f7ed-0126)带上到后面,得到如下的key下载地址
[JavaScript] 纯文本查看 复制代码
http://hls.videocc.net/b034527feb/d/b034527feb4cd0ab7817207e07f247bd_3.key[b][color=Red]?token=71e98423-69f1-4460-a045-fd9ce9e7f7ed-0126[/color][/b]
6.通过浏览器访问这个地址,我们就会下载到一个key(注意:token会过期,如果下载失败,刷新页面重试一下),这个key是16位的,是已经解密了的
7.PNG
7.将16位的key和M3U8的地址放到下载器就可以正常下载了
8.PNG
9.PNG
个人猜测: 为什么按照原来帖子的方法解密不了,这个方法好像是2020年时候的了,可能这个加密方法可能改了。可能改成了通过服务器端解密,
js异步下载解密key,不把加密/解密方法细节暴露出来,不过这样子只要暴露了解密的下载地址也就会下载到解密key,所以加上了一个token的限制吧,
token大概一分钟失效,失效以后需要刷新页面重新拿token,重新下载。
这个方法是我自己无意之间发现的,仅供参考。并且个人水平有限,如有错漏请指出。
下一篇:最新版快速CAD、CAD迷你画图等实战绿化教程