一些电影或视频网站的视频源经常被人盗用,基本都不会直接公布视频源在源码里,这里发现视频或电影网站为了避免视频源被查到或盗用,均对其进行了伪装。这里搬主题就分享一下电影视频网站隐藏视频源将HLS流伪装成图片的方法及教程。
最近在某一视频网站发现一部想看的电影,不想在线看而是下载下来有空慢慢观赏,于是尝试打开 chrome inspector 抓源, 但是打开后播放视频,却没有 Media 请求,不断增长的只有一些 png 格式的请求,而这些 png 图片打开后只有一个中间一个像素白点,并不像是有效的图片文件。
于是继续在 network 面板寻找“可疑”请求, 比如fetch或者xhr,发现一个 fetch 请求的数据是像压缩或者加密过的二进制乱码而不是明文
点开这个请求的 initiator,看到了我们想看的东西:
这里可以看出这个请求是用来获取 hls流 的 index 文件的, 格式是 application/vnd.apple.mpegurl ,而且可以看出response payload 的 String 是 被 gzip压缩过的,解压缩过后,可以看出是标准的 m3u8 文件格式:
而我们上面说的只有一个白点的 png 文件地址全都存放在这个 index文件中
这里我想起来之前论坛说的 批量修改 ts 文件后缀 为 png 上传公共图床的文章,我下载了其中一个 png 文件下来 ,用Linux hexdump 命令查看文件头,发现确实有 png 文件头,说明不是简单改个后缀名完事的。 但是, 之后的内容就非常可疑了, 很类似 MPEG-TS 文件的packet格式
作为对比, 下面是一个标准的 mpeg-ts 文件头:
可以看到 png 文件除了开头的 212 字节以外, 其他都是符合 ts 文件的格式的,于是尝试 dd 命令删掉前面 212 字节:
dd if=0.1 of=output.ts bs=4 skip=53
打开 output.ts 文件,可以正常播放, ffmpeg 查看也是标准 mpegts 文件:
对于其他的 png 文件,发现也是同样的有 212 bytes 的无效headers,去掉之后同样可以播放。
总结: 所以网站是给 ts 视频文件添加 长度为 212 bytes 的文件头,把它伪装成 png 格式 ,然后客户端再以 二进制处理这个文件,去掉开头的 212 bytes,还原成标准的 ts 文件后,再在播放器里播放。
1.本站内容仅供参考,不作为任何法律依据。用户在使用本站内容时,应自行判断其真实性、准确性和完整性,并承担相应风险。
2.本站部分内容来源于互联网,仅用于交流学习研究知识,若侵犯了您的合法权益,请及时邮件或站内私信与本站联系,我们将尽快予以处理。
3.本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
4.根据《计算机软件保护条例》第十七条规定“为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。”您需知晓本站所有内容资源均来源于网络,仅供用户交流学习与研究使用,版权归属原版权方所有,版权争议与本站无关,用户本人下载后不能用作商业或非法用途,需在24个小时之内从您的电脑中彻底删除上述内容,否则后果均由用户承担责任;如果您访问和下载此文件,表示您同意只将此文件用于参考、学习而非其他用途,否则一切后果请您自行承担,如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
5.本站是非经营性个人站点,所有软件信息均来自网络,所有资源仅供学习参考研究目的,并不贩卖软件,不存在任何商业目的及用途
暂无评论内容