mr清扬 发表于 2019-6-5 10:45

关于m3u8文件解密再具体说一下.

本帖最后由 mr清扬 于 2019-6-5 11:20 编辑

       基本网页视频播放,后台都是基于 ffmpeg 处理视频. 前端使用videojs和dplayer
       ffmpeg 封装了openssl库, 可以加密视频. 命令也很简单.
ffmpeg -y \
-i test.mp4 \         #导入的mp4文件

-hls_time 12 \       # 将test.mp4分割成每个小段多少秒

-hls_key_info_file enc.keyinfo \   #导入的key

-hls_playlist_type vod \   # vod 是点播,表示PlayList不会变
-hls_segment_filename "index%d.ts" \#每个小段的文件名

playlist.m3u8   #生成的m3u8文件

   
   利用ffmpeg 一句话就可以完成加密,
   是分割成多个ts文件后, 才开始对每一个ts文件进行加密.
   前端播放器, dplayer和videojs 也都是适配ffmpeg的,



当播放器读取到m3u8文件时, 发现使用 aes-128加密时, 会去m3u8拿key 和 偏移量(IV),
基本小网站,一些个人付费会员视频网站喜欢使用这种方式.
主要还是改后端加密方式, 前端的解密方式也要改. 对个人来说非常困难, 而且还会带来不稳定.


我来个例子解释下:




这个网站,对ts文件进行了加密



啥也不说,直接右键保存到本地.


直接打开,依然报错


明显还是加了密的



啥也不干, 把原文件上传到服务器..




修改下播放路径.因为我的网站使用的是Dplayer, 所以可以直接播放.


加密方式还是和原来一样, 我没有做任何处理就可以在我自己的网站上播放



但是大企业不一样!!! 钱多话少大牛多
现在魔改 ffmpeg的太多了.
我遇到几个, 基本都是对key进行二次加密,
第二次加密的key,存放在播放器上.
所以只有使用企业自己的播放器才能播放视频.
二次加密的key, 还有可能不是明文存放.
只有会员登陆并开始播放时, 才动态解密成真正 key.
所以很多时候只能 动态调试 获取真正的key..
如果再加上混倄, 反编译, 反调试手段 什么的..
反正苦力活, 这种事给钱也不能干.
给个建议: 如果是基于基本的加密,没有魔改,像上面的一样, 用idm是可以直接下载的.
如果用了魔改的, 唯一办法只有逆向播放器, 看解密方式.
魔改这种就算所有的key给你拿到了, 你不知道解密方式 ,也解不了的.
二次加密的key, 也不会通过发包明文传送.
网页的播放器的话 , 看js吧.也不会比客户端播放器简单太多

小优雅 发表于 2019-6-5 13:11

我感觉你在开car,but我没有证据

☆-274℃↓ 发表于 2019-6-6 10:17

只看懂了插图,其他的就完了

shojnhv 发表于 2019-6-5 12:18

虽然看读懂,但也学到了一点点

hjjsc 发表于 2019-6-5 12:49

编程不太懂,太看懂了里面的插图。。。。。。。。。。

追风筝de人 发表于 2019-6-5 13:18

这个网站;www,有么有本地解密的办法

yeqiang163 发表于 2019-6-5 13:29

但是有些vip解析还是可以从各大站的vip视频获取地址 没有加密 !应该加密仅限于部分有需求的企业把!

angustung 发表于 2019-6-5 13:42

很好很强大

iTusAliong 发表于 2019-6-10 19:39

这些视频之类的解读,还是第一次看见

54264 发表于 2019-6-11 12:55

插图很厉害,资源可以分享下吗{:301_998:}
页: [1] 2 3
查看完整版本: 关于m3u8文件解密再具体说一下.