• 进群 点我
    开始之前请大家先去了解一下 wasm这种技术(可以百度搜索一下 WebAssembly是什么?)
    现在开始…
    1,先看一张图
Image 1
首先写一个本地加载wasm的方法

00043706.wasm就是当前网站load的wasm库,如果遇到报错,请联系我,文章最后有qq联系方式

let u ={}
function i() {
      
            return  fetch("00043706.wasm").then(function(A) {
                if (!A.ok)
                    throw "failed to load wasm binary file at '" + s + "'";
                return A.arrayBuffer()
            })
}
function ss(){
            return i().then(function(A) {
                return WebAssembly.instantiate(A, u)
            }).then(function(A) {
                console.log(A.instance)
            }).catch(function(t) {
                console.log(t)
 
            })
}
ss();

打印出来所有的方法看一下,然后和源码(下图)比对一下,发现都一直asm.xxxx.apply

中的xxxx就是函数名称

Image 1

我们可以使用node或者渲染代码快速加载,本人用的python+快速渲染处理的,共耗费工时5小时左右。

先拿到wasm,然后拼接加载所需要的环境,就行了

不好下载wasm或者找不到的朋友,打开f12找到这个位置,e(23)(xxxx)

其中的xxxx就是wasm的base64编码,转成bytes存起来一样。

Image 1
为了方便你我他,已经打包好了,联系我拿包一键运行(下面是我封装好的)运行起来,等待解密两个字加载成功,你就可以发请求了了
Image 1

比如我发送:某东方 这种链接 /api/hls/sgmt_bin?code=获取到的bytes类型的content,

Image 1

这种也看不明白

先base64转码以后发给我打包的服务(图片b_strr就是转码的base64字符串):

Image 1
红色的就是我们的结果,0-19后面跟的就是m3u8片段前0-19的解密key,

aes解密的时候填入这个key就可以下载了 ,我随便找了一个视频进行了下载,很是完美

Image 1