某学院m3u8视频解密获取分析实战分享
[免责声明]本文来源于作者个人学习整理,仅供学习交流使用,不构成商业目的。所有资源均系本人个人学习或网络收集,仅提供一个展示、介绍、观摩学习的博文,不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任。如涉及文章内容、版权和其它问题,请与本人联系,我将在第一时间处理。
0x1 视频课程信息收集--m3u8、key
1. m3u8视频文件获取
首先找到对应的课程视频,最好是已经购买了的(你懂的-_-)。接着使用IDM如下图浏览器右上角,我这使用的是firefox安装的扩展插件IDM进行视频下载操作,记下这个下载URL:https://edu.51cto.com//center/player/play/m3u8?lesson_id=1043_253110&id=245898&dp=high&type=wejoboutcourse&lesson_type=course
开始下载,发现弹出如下对话框~~~~~~~
没关系,我们接着往下操作,点击该URL或者复制该地址到浏览器中打开,你会发现下载一个文件newplay.m3u8,然后先保存到本地。
至此,我们拿到了m3u8文件。
2. 通过m3u8文件获取到加密key
既然拿到了文件,我们就用文本编辑打开看看里面啥内容,发现好多信息有某有:METHOD加密方式AES-128、key的URI下载地址、iV偏移量以及下面大量的视频ts切片地址信息。
接下来,我们根据文件中key的URI下载地址链接去试试呗。https://edu.51cto.com//center/player/play/get-key?lesson_id=1043_253110&id=245898&type=wejoboutcourse&lesson_type=course&isPreview=0
出现errorSign,这个啥情况?缺少参数?
重点来了:我们回到原视频播放页面中,接着调试一波看看能不能找到点有用的,打开浏览器的开发者工具, 以firefox为例, 页面上右键--检查, 或者快捷键F12, 切换到Network/网络监视器面板--刷新或重新载入当前页面;
用key关键字过滤url发现完整的key地址链接出来了https://edu.51cto.com/center/player/play/get-key?lesson_id=1043_253110&id=245898&type=wejoboutcourse&lesson_type=course&isPreview=0&sign=401b379280593cf4dbefbd703886475b,点击链接查看详细信息,发现响应里面出现了一串看不懂的字符串BiNQy07alW36osRdnP0UlNOHH7xjEPRamHxjZPYJiNyPx7NUQQVddPiOua0oJOiUjPNjSPxH9N0Ux5elOPyHVUCB0PPHpLw3QHOPZPxUiQyPQLexQQV51这个就是加密的key了记录下来。
注意: 加密key的内容每次都会变化, 但是解密得到的key是唯一的;
0x2 视频课程key解密
获取课程id
视频播放地址https://edu.51cto.com/center/course/lesson/index?id=1043_253110&type=wejob 其中有个id数字: "1043_253110", 这是课程id, 记下这个数字;
加密key
BiNQy07alW36osRdnP0UlNOHH7xjEPRamHxjZPYJiNyPx7NUQQVddPiOua0oJOiUjPNjSPxH9N0Ux5elOPyHVUCB0PPHpLw3QHOPZPxUiQyPQLexQQV51
开始解密
用以上准备好的加密key和课程id, 开始解密:
浏览器打开解密key的js代码(文末百度盘打包有)
打开浏览器的开发者工具, 页面上右键--检查, 或者快捷键F12, 切换到console/控制台面板. 在console面板粘贴、执行刚才的js代码;
执行代码:
decode("BiNQy07alW36osRdnP0UlNOHH7xjEPRamHxjZPYJiNyPx7NUQQVddPiOua0oJOiUjPNjSPxH9N0Ux5elOPyHVUCB0PPHpLw3QHOPZPxUiQyPQLexQQV51","1043_253110")
得到解密key: e5e319c31a310fb5
0x3 用解密key解密视频
转换进制
需要先把解密key转为32位的16进制字符串
可以用这个在线工具: https://www.bejson.com/convert/ox2str/ 或安装Windows下hexdump工具手动转换
得到转换后的32位key: 65356533313963333161333130666235
使用bat批量解密ts切片并自动合并:
其中ffmpeg、wget工具配合openssl来实现批量脚本的自动解密合成最终的视频文件。
0x4 百度盘打包程序
链接:https://pan.baidu.com/s/1rIytswcyDpsqLp8GQsRE3A
提取码:blog
PS:开发好的同学亦可python脚本,根据本文内容步骤进行自动批量视频的download。
某学院m3u8视频解密获取分析实战分享的更多相关文章
- 优酷m3u8视频源地址获取失败
昨天和今天上午,优酷站点视频全然没有办法播放,可是我是获取的优酷视频的视频原地址,所以app还是能够正常播放而且有下载功能.今天下午開始,优酷视频网页能够訪问了,可是视频原地址却不在了.我全部的app ...
- 打造m3u8视频(流视频)下载解密合并器(kotlin)
本文是对我原创工具m3u8视频下载合并器关键代码解析及软件实现的思路的讲解,想要工具的请跳转链接 1.思路说明 思路挺简单,具体步骤如下: 下载m3u8文件 解析m3u8文件获得ts文件列表 根据文件 ...
- 《Wireshark数据包分析实战》 - http背后,tcp/ip抓包分析
作为网络开发人员,使用fiddler无疑是最好的选择,方便易用功能强. 但是什么作为爱学习的同学,是不应该止步于http协议的,学习wireshark则可以满足这方面的需求.wireshark作为抓取 ...
- 如何打造一款m3u8视频爬虫
0.前言 m3u8是一种很常见的网页视频播放器的视频源,比如说中国大学MOOC中课程就是使用了该种视频格式. 随便打开一门课程,就可以发现在网络请求中存在一个m3u8的文件,在preview中预览,它 ...
- 小D课堂 - 新版本微服务springcloud+Docker教程_4-03 高级篇幅之Ribbon负载均衡源码分析实战
笔记 3.高级篇幅之Ribbon负载均衡源码分析实战 简介: 讲解ribbon服务间调用负载均衡源码分析 1.完善下单接口 2.分析@LoadBalanced ...
- stars-one原创工具——m3u8视频下载合并器(kotlin)
一款可以下载m3u8.解密ts文件及合并ts文件的视频下载工具 蓝奏云下载地址 github地址 软件对你有帮助的话,不妨赞赏一波!感谢! 程序说明 采用多线程下载,可有效的提高下载速度 内置解密程序 ...
- 恶意代码分析实战五:OllyDebug动态结合
目录 恶意代码分析实战五:OllyDebug动态结合 OllyDebug界面介绍 OllyDebug载入程序方法 OllyDebug地址跳转 OllyDebug下断点 OllyDebug单步执行 Ol ...
- 恶意代码分析实战四:IDA Pro神器的使用
目录 恶意代码分析实战四:IDA Pro神器的使用 实验: 题目1:利用IDA Pro分析dll的入口点并显示地址 空格切换文本视图: 带地址显示图形界面 题目2:IDA Pro导入表窗口 题目3:交 ...
- IOS从视频中获取截图
从视频中获取截图: NSString *movpath =[[NSBundle mainBundle] pathForResource:@”iosxcode4″ ofType:@”mov”]; mpv ...
随机推荐
- Hive和Spark分区策略
1.概述 离线数据处理生态系统包含许多关键任务,最大限度的提高数据管道基础设施的稳定性和效率是至关重要的.这边博客将分享Hive和Spark分区的各种策略,以最大限度的提高数据工程生态系统的稳定性和效 ...
- c#json将字符串反序列化成对象时不新建类的做法
在服务端代码文件中加上struct结构体就能解决 struct LocationInfo { public string LocationID { get; set; } public string ...
- Windows10 准备/安装Flutter研发环境
Flutter简介 Flutter 是 Google 开源的 UI 工具包,帮助开发者通过一套代码库高效构建多平台精美应用,支持移动.Web.桌面和嵌入式平台. Flutter 中国 安装Flutte ...
- 11、mysql索引详解
1.索引介绍: 2.建立索引的方法: 注意:索引名称不要相同: (1)在建表的时候,可以增加主键索引的语句如下: 1)例一: create table student1 ( id int(4) not ...
- 修改MySQL时区
说明: 1.Windows版本暂无发现问题 2.CentOS-Docker版本需要修改时区 通过sql命令临时修改 mysql> set global time_zone = '+8:00'; ...
- Https:证书生成 .p12 .keyStore 和 .truststore文件理解
当我们需要SSL证书时,可以自动生成SSL证书,但是每个系统都申请一次证书会比较麻烦,所以用到了如下几个文件格式: .p12(PKCS #12) 我们的每一个证书都可以生成一个.p12文件,这个文 ...
- Linux:linux下解压*压缩tar.xz、tar、tar.gz、tar.bz2、tar.Z、rar、zip、war等文件方法
tar -c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件 ------------------------------------------ 这 ...
- 使用RestTemplate发送post请求,请求头中封装参数
最近使用RestTemplate发送post请求,遇到了很多问题,如转换httpMessage失败.中文乱码等,调了好久才找到下面较为简便的方法: RestTemplate restTemplate ...
- JDBC:MySQL5.x 与 MySQL8.x
jar包下载地址: https://dev.mysql.com/downloads/connector/j/ 或者 :http://central.maven.org/maven2/mysql/mys ...
- MySQL 卡死的问题
1. 执行show full processlist观察state和info两列,查看有哪些线程在运行. 2.使用kill命令+对应线程前面id杀死卡死的线程. 其他的方式: -- 查询是否锁表 sh ...