猿人学第十五题也出来啦
题目链接:http://match.yuanrenxue.com/match/15
十五题是一个WebAssembly类型简称wasm 看看介绍
下面 就由鸽子王小林弟弟来带你们玩
常规操作 先下一个XHR断点
然后堆栈找m的来源
能看到这里有加载了一个main.wasm 这就是我们今天的主角了
逻辑很清晰 但是 window.q是啥呢 要咋调用呢?咋玩呢?
无需担心 跟着我来
俩种玩法
node
由于node是支持WebAssembly的 所以直接导入wasm改写原来的代码就可以直接调用了
我直接手动把main.wasm文件转为Uint8Array
然后把手动改写代码
自己手敲一下理解一下
python
先装一个python-wasmer库
GitHub地址:https://github.com/wasmerio/wasmer-python
$ pip install wasmer==1.0.0a3 $ pip install wasmer_compiler_cranelift==1.0.0a3
GitHub里面就有使用方法
根据GitHub给出的方法再结合上网页上的使用方法
改写成python就是
顺便记一个小坑
Tips
如果安装好wasmer后运行不了
ImportError: Wasmer is not available on this system
经过咨询和观察 发现是python版本的问题 虽然作者说支持3.9 但是亲测不行
所以我手动将版本回滚到3.79 再次pip install wasmer后运行正常了
就这问题卡了我2个小时....害
最后Python运行
完美撒花 感谢各位大佬观看
[完]