前言:本文章只提供学习,不做其他用途
网址: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 条评论) |