具体是什么平台,什么版本的就不方便直说了,大家看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不正确。
最近发现的M3U8下载新方式(2022)

quBSr6.png


最近发现的M3U8下载新方式(2022)

quBERA.png


我觉可能是加密方式改了,于是发了求助帖子
https://www.52pojie.cn/thread-1607458-1-1.html
https://www.52pojie.cn/thread-1608121-1-1.html
大牛们说的方法太抽象了,我看不太懂,于是自己也在研究。
终于,在贴里的大牛帮助下,给我发现了一种新的下载方式,比较简单和快捷,适合小白
方法如下(也需要简单的js逆向)
1.打开调试工具,找到这个js,并格式化一下。(因为他压缩了)
最近发现的M3U8下载新方式(2022)

1.PNG

最近发现的M3U8下载新方式(2022)

2.PNG


2.在js代码里面搜索"decryptdata"关键字,来到大约12706行左右(变量什么的可能有所不同,因为他是压缩过的),放入断点
最近发现的M3U8下载新方式(2022)

3.PNG


3.基本上每次视频加载都会调用这个位置的代码,找到"_decryptdata"变量
最近发现的M3U8下载新方式(2022)

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来的,没用。
最近发现的M3U8下载新方式(2022)

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下载地址,直接访问他,发现无法下载。
最近发现的M3U8下载新方式(2022)

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位的,是已经解密了的
最近发现的M3U8下载新方式(2022)

7.PNG


7.将16位的key和M3U8的地址放到下载器就可以正常下载了
最近发现的M3U8下载新方式(2022)

8.PNG

最近发现的M3U8下载新方式(2022)

9.PNG


个人猜测: 为什么按照原来帖子的方法解密不了,这个方法好像是2020年时候的了,可能这个加密方法可能改了。可能改成了通过服务器端解密,
js异步下载解密key,不把加密/解密方法细节暴露出来,不过这样子只要暴露了解密的下载地址也就会下载到解密key,所以加上了一个token的限制吧,
token大概一分钟失效,失效以后需要刷新页面重新拿token,重新下载。
这个方法是我自己无意之间发现的,仅供参考。并且个人水平有限,如有错漏请指出。
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!