M3U8其实是 HTTP Live Streaming(缩写为 HLS) 协议的部分内容,而 HLS (HTTP Live Streaming)是Apple的动态码率自适应技术。主要用于PC和Apple终端的音视频服务。包括m3u(8)的索引文件,TS媒体分片文件和key加密串文件。
M3U8文件内链接地址又分为绝对地址与相对地址,绝对地址即完整地址,相对地址依赖当前文件目录地址!媒体分片文件与key加密串文件有N多种,例如常见码流分片格式ts、m4s、bbts、mp4等,常见key加密串:key文件、网址、明文,同时部分key对应有IV值,增加加密强度!
以M3U8文件加密Ts码流分片为例:
[ol]
[color=]#EXT-X-KEY:METHOD=AES-128
,
表示TS加密类型为AES-128,其中加密参数链接为”
[color=]域名/e775250b62/4/e775250b62d01c179fb6370ae3759a34_1.key
”,对应IV为"
[color=]0x864267cc19f34ec1066e016e0da856ee
"
一般加密为JS混淆或wasm,通过上面M3U8文件内加密KEY参数进行逆向解密得到base64 key:vTXHSbdTixwRuG6ydfoD3A==
加密算法模式:
[ol]
AES填充方式:
[ol]
常见M3U8数字版权保护加密:
普通JS混淆、Wasm、Apple FairPlay Drm、优酷 Copyright DRM、Marlin DRM、爱奇艺BBTS、Google widevine、vdocipher drm等等。。。
[ol]
本文不讨论解密key,仅做学习研究,禁止任何违反法律与道德的行为!欢迎各位大佬交流指点~