惊!川普遇袭被预测
最近美国总统候选人川普,预测被大家广泛关注,其实早在美国知名动漫辛普森一家中有预言;在第七季在辛普森一家预言特朗普遇袭,但是不同的是现实中是耳朵受伤,现在我们就去了解这部动漫的下载
网站:aHR0cHM6Ly95aGRtLm9uZS92b2QtcGxheS8xOTk1MzUzMDM4L2VwMTcuaHRtbA==
需要魔法
关键点,m3u8下载
知识准备
M3U8基础
首先,我们需要了解HLS(HTTP Live Streaming)。HLS是由苹果公司提出的基于HTTP的流媒体网络传输协议,而M3U8是HLS协议的重要组成部分,在直播、视频网站等领域应用广泛。
HLS协议规定,视频的封装格式是TS(Transport Stream)。除了TS视频文件本身,HLS还定义了用于控制播放的M3U8文件(文本文件)。HLS的工作原理是将整个视频流分割成一个个小的TS格式视频文件来传输。在开始一个流媒体会话时,客户端会先下载一个包含TS文件URL地址的M3U8文件(相当于一个播放列表),以便客户端下载TS文件。这样可以让用户更方便地选择视频节点播放,提升用户体验,同时提供了加密方式,更好地保护视频内容不被窃取。
M3U8的基本字段包括:
#EXTM3U
:M3U8文件头,必须放在第一行。#EXT-X-MEDIA-SEQUENCE
:第一个TS分片的序列号,一般情况下是0,在直播场景下标识直播段的起始位置。#EXT-X-TARGETDURATION
:每个分片TS的最大时长。#EXT-X-ALLOW-CACHE
:是否允许缓存。#EXT-X-ENDLIST
:M3U8文件结束符。#EXTINF
:分片TS的信息,如时长、带宽等。#EXT-X-VERSION
:M3U8版本号。#EXT-X-DISCONTINUITY
:表明其前一个切片与下一个切片之间存在中断。#EXT-X-PLAYLIST-TYPE
:表明流媒体类型。#EXT-X-KEY
:是否加密解析,包括加密算法和密钥获取方式。
请求流程:
- 客户端发起对M3U8的请求,服务器校验完成后下载M3U8文件到本地。
- 客户端解析M3U8文件,找到密钥KEY地址并访问获取加密的密钥。
- 客户端解析M3U8文件拿到分割文件的大小和对应TS文件地址,并访问获取视频流。
- 客户端使用获取的密钥和对应的加密算法对视频流进行解密,播放视频。
重要部分:
-
找到M3U8文件的链接地址。
-
解析M3U8文件,关注
#EXTINF
和#EXT-X-KEY
两个字段。 -
#EXTINF
字段中可以获取TS协议流的分段大小信息和视频流下载链接信息。#EXT-X-KEY
字段中可以获取TS视频是否加密的信息,如果加密则可以获取对应的加密方式和加密KEY地址。
-
使用获取的密钥对TS文件进行解密并播放。
M3U8文件的深入解析与应用
在掌握了M3U8的基础知识和请求流程后,我们可以进一步深入了解M3U8文件的结构和应用。
M3U8文件结构:
M3U8文件是一个文本文件,按照特定的格式组织。它以#EXTM3U
开头,表明这是一个M3U8文件。接下来是一系列的标签,每个标签都以#
开头,后面跟着标签名和标签内容。这些标签定义了播放列表的各种属性和分片信息。
M3U8文件的应用:
- 动态更新:在直播场景中,M3U8文件是动态生成的。随着直播的进行,新的TS分片会不断生成,并添加到M3U8文件中。客户端会定期请求新的M3U8文件,以获取最新的播放列表和分片信息。
- 多码率适配:为了适应不同网络环境和客户端设备,同一个直播流可能会生成多个不同码率的分片。M3U8文件可以包含多个不同码率的播放列表,客户端可以根据当前网络环境和设备性能选择合适的码率进行播放。
- 加密保护:为了保护视频内容不被非法获取和传播,M3U8文件支持加密分片。通过
#EXT-X-KEY
标签,可以定义加密方式和密钥获取方式。客户端在播放前需要先获取密钥,并对分片进行解密。 - 广告插入:在M3U8文件中,可以通过特定的标签定义广告插入点。当客户端播放到这些点时,会暂停主视频流的播放,并切换到广告视频的播放。这种方式可以实现广告的精准插入和播放控制。
总结:
M3U8文件是HLS协议的重要组成部分,它定义了播放列表和分片信息,使得客户端能够方便地获取和播放流媒体内容。通过深入了解M3U8文件的结构和应用,我们可以更好地理解和应用HLS协议,为用户提供更优质、更安全的流媒体服务。
分析过程
打开网页过滤包含m3u8的网址
其中有三个m3u8其中第三个是视频文件下载的,其中可以看出
#EXT-X-KEY:METHOD=AES-128,URI=“/20220821/Fq3lNX8A/1500kb/hls/key.key”
他是通过AES-128进行加密,密钥/20220821/Fq3lNX8A/1500kb/hls/key.key
/20220821/Fq3lNX8A/1500kb/hls/fTjZDx2s.ts
#16进制数转ascii码,这个预先生成,最后的0a不要
#hexdump -v -e '16/1 "%02x"' key.key
strkey=xxxxxxx
#一共有120个小文件
for j in $(seq 0 119)
do
#echo $j
iv=$(printf '%032x' $j)
#echo $iv
input="./ts/"$j".mp4"
output="./output/"$j"_out.mp4"
#echo $input
#echo $output
openssl aes-128-cbc -d -in $input -out $output -nosalt -iv $iv -K $strkey
done
#openssl aes-128-cbc -d -in 0.mp4 -out 0_out.mp4 -nosalt -iv $iv -K $strkey
视频后缀fTjZDx2s.ts也进行了加密让你分不清是第几节
接下来直接搜索AES-128,知道这里进行断点
这里是得到iv值的地方,进行跟栈找到加密的地方
这里就是主要调用的地方