WASM是一种低级的编程语言,旨在提高网页运行效率,现在作为反爬手段,它的代码偏底层,我们不学代码的语法,只用学怎么补这种代码即可
网页加载过程
1.创建Wasm模块
- 用C/C++、Rust等语言编写代码,并编译成Wasm文件
2.加载Wasm模块
- 使用JavaScript的fetchAPI获取WASM文件,并用WebAssembly.instantiate或WebAssebly.instantiateStreaming进行加载
3.调用WASM导出函数
- 通过实例化WASM模块,可调用导出的函数并于JavaScript进行交互
Fetch模块
简洁版ajax,代码如下:
fetch('https://...').then(response=>response.json()).then(data=>console,log(data)).catch(error=>console.error('Error:',error));默认不带cookie,需要手动配置
WebAssebly模块
webassebly.instantiate使用:
WebAssebly.instantiate(bytes,importObject)代码运行后返回的是一个异步,然后通过instance.exports获取模块,根据加密逻辑再调用模块即可,代码如下:
WebAessbly.instantiate(读取的WASM文件内容,{WASM文件运行所需的参数}).then(res=>{console.log(res.instance.exports.加密逻辑所需函数(需要加密的参数);})读取WASM所需的模块
fs模块可以读取WASM文件,代码如下:
varfs=require('fs')varwasm_code=fs.readFileSync('文件地址')// 调用wasm中的函数进行加密WebAessbly.instantiate(wasm_code,{...}小结
本文看完可能会有些蒙,下一文进行实操,你会发现代码就这么简单,本文如有什么问题发出来交流讨论,加油加油