某网站视频加密的wasm略谈

11 篇文章 8 订阅
5 篇文章 6 订阅

某网站视频加密的wasm略谈

前言

前两天朋友和我说某网站更新了新得加密,然后我就顺手去看了一下。这个托管平台的加密方案从v10、v11、v1102到现在更新到了v12版本,首先上一个数据,仅个人感觉,仅供参考。

代码层面难度提升
js层加密逻辑10% - 20%
wasm层加密逻辑30% - 40%

js层分析

js层中其难度的提升主要是在出现了大量的异步操作,m3u8也进行了加密,解密逻辑也放到了js层

首先是json接口的解密,和之前是一模一样的,这个就不说了。解密后拿到的是pdx后缀的链接,请求得到的是一段加密的m3u8,通过跟踪调用堆栈,可以找到如下的解密函数

function rt(e, t) {
            var n;
            try {
                n = JSON.parse(e)
            } catch (t) {
                return e
            }
            return function(e, t) {
                var n = je.util.b(ze("NTQ1ZjhmY2QtMzk3OS00NWZhLTkxNjktYzk3NTlhNDNhNTQ4#" + t).slice(1, 17))
                  , r = nt(e)
                  , i = new je.m.c(n,[1, 1, 2, 3, 5, 8, 13, 21, 34, 21, 13, 8, 5, 3, 2, 1],!0).d(r);
                return je.util.convertBytesToString(i)
            }(n.body, String(2 * t))
        }

发现是一个标准的aes解密,解密后就可以得到m3u8文本。同时也发现了一个和之前版本的不同点,每个分片的后缀是pts,而不直接是ts了

wasm略谈

因为wasm涉及核心算法,涉及版权问题,就不深入说了。目前我想到的是有三种解密方案

方案优点缺点
反汇编,通过其他语言还原逻辑效率最高,不需要依赖wasm需要反汇编wasm动静态分析还原
魔改wasm二进制文件不需要知道key,直接调用即可需要反汇编wasm分析和修改
反混淆wasm返回结果不需要知道key,不需要修改wasm需要反汇编wasm分析和还原es流

方案1已经使用python还原,测试了合并文件ffmpeg没有报错,视频播放不会出现花屏、卡顿等问题

方案2魔改后,通过nodejs调用wasm的方式也测试通过,不会出现花屏、卡顿等问题

方案3目前还是大胆假设的过程,还没有时间进行小心求证

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
手机端Chrome浏览器视频出现花屏的主要原因可能有以下几点: 1. 硬件问题:手机的处理器性能不足或者显卡性能较差,无法正常播放高清视频,导致花屏现象。 2. 网络问题:手机所连接的网络不稳定或网速较慢,导致视频加载缓慢或者出现花屏。 3. 编码格式问题:视频的编码格式与手机端Chrome浏览器不兼容,或者编码格式本身存在问题,导致播放时出现花屏。 4. 软件问题:手机端Chrome浏览器存在bug或者版本较旧,无法正常解码和播放视频,导致花屏现象。 5. 其他因素:还可能由于手机操作系统的版本问题、应用程序的冲突或数据损坏等引起视频花屏现象。 针对这些问题,我们可以尝试以下解决方法: 1. 确保手机硬件性能足够,升级到较高性能的手机,以支持更高画质的视频播放。 2. 检查网络连接,确保网络稳定且速度足够快,如果网络信号较差,尝试连接到更稳定的WiFi网络或更换手机运营商的网络。 3. 确认视频编码格式与手机端Chrome浏览器兼容,可以尝试使用其他视频播放器或转换视频格式。 4. 更新手机端Chrome浏览器到最新版本,或者尝试使用其他浏览器来播放视频。 5. 若问题仍然存在,可以尝试清除手机应用程序缓存、数据,或者重置手机的设置来解决软件问题。 如果以上方法解决不了问题,建议联系手机厂商的客服或技术支持团队,寻求进一步的帮助和解决方案。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值