某网站视频加密的wasm略谈
2021/10/25 23:12:27
本文主要是介绍某网站视频加密的wasm略谈,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
某网站视频加密的wasm略谈
- 前言
- js层分析
- 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和3目前还是大胆假设的过程,还没有时间进行小心求证
这篇关于某网站视频加密的wasm略谈的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南