某学习网站m3u8视频流程分析

阅读: 评论:0

某学习网站m3u8视频流程分析

某学习网站m3u8视频流程分析

前言:本文章只提供学习,不做其他用途

网址:aHR0cDovL3d3dy52dWx0b3AuY29tL2NvdXJzZS8xMDMvdGFzay80Njk1L3Nob3c=

m3u8是将视频分割成不同的ts切片,然后进行加载。

这边老规矩,依旧先进行抓包分享,这边刷新网页发现很多名称相同的包,这个就是m3u8切片后的视频流,找到第一个ts切片,往往他的视频格式包就在其附近

这边先将文件保存本地进行分析一下,是将每一个切片进行了加密。每一段都看到一个iv都携带了一个视频的链接。

现在的主要目的就是寻找他的key值,这边直接下xhr断点,这里直接短住,要寻找send的返回的位置,又发现c是传进来的。这里直接跟栈即可

跟栈到到位置断住,e就是XMLHttpRequest,现在要寻找XMLHttpRequest状态发生改变的参数,也就是onreadystatechange函数,这里直接搜索即可,发现被绑定到readystatechange上了,直接跟过去,下断即可。

断点断住以后再次分析一下e。图下已经做了标记,现在我们这边需要需要的就是cuurrentTargct元素的responseText属性。

这里直接在当前作用域再次搜索,发现了一个简单的三元表达式,但是不管最终结果是左边还是右边,这里都会复制给o,再次下断跟过去。

简单分析一下o。这里o被赋值到u下面,u又被callbacks 返回了,这里需要单步进去,这里需要注意

跟进去下断,这里出现了hls,这里就简单介绍一下,hls全称为HTTP Live Streaming,是苹果公司提出的基于HTTP的流媒体网络传输协议。它的工作原理是把整个媒体流分成一个个小的基于HTTP的媒体分片来下载,每次只下载一些分片。在开始一个流媒体会话时,客户端会下载一个包含媒体分片的索引文件,即extended M3U playlist文件(m3u8),用于寻找可用的媒体分片。

这里是hlsKetloaded加载事件。

 控制台输入this.hls。找到事件的回调,也就是_event

 点开_event ,里面的都是指向同一个函数,直接跟进去hlsFragLoaded函数即可。

发现进入了一个trigger,一个分发器中。就此整个流程算分析的差不多了。

 再次断点运行,回到callbacks单步进去,断到新的位置。

 这个没有做混淆,直接当前文件搜索FragLoaded事件即可。这里将所有的都push进去了。再次单步进去。

 这里已经能看到关键信息了,直接在当前方法看一下h的变动,就能找到我们最终想要key值

这里就是key解密的部分,就此m3u8视频分析流程已经完成。

 

本文发布于:2024-01-31 23:12:23,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170671394632080.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:流程   学习网站   视频
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23