鸽子王带你玩wasm

简介: 鸽子王带你玩wasm

猿人学第十五题也出来啦

题目链接: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运行

完美撒花 感谢各位大佬观看







[完]

相关文章
|
Rust JavaScript 前端开发
【Rust 实战】Rust 与 Wasm
【Rust 实战】Rust 与 Wasm
1609 0
【Rust 实战】Rust 与 Wasm
|
Web App开发 存储 JavaScript
使用AssemblyScript 构建 WebAssembly 应用
WebAssembly,也称为 Wasm,是为 Web 创建的二进制格式。它允许通过从常规 JavaScript 访问的相同 Web API 访问浏览器功能。
676 0
使用AssemblyScript 构建 WebAssembly 应用
|
5月前
|
Rust 前端开发 JavaScript
Rust 编译为 WebAssembly 在前端项目中使用(二)
Rust 编译为 WebAssembly 在前端项目中使用(二)
128 0
|
5月前
|
Rust 前端开发 JavaScript
Rust 编译为 WebAssembly 在前端项目中使用(一)
Rust 编译为 WebAssembly 在前端项目中使用(一)
|
7月前
|
开发框架 Rust JavaScript
WebAssembly
关于使用和推荐方面,由于缺乏关于 Grain 语言的详细信息,我无法为您提供确切的建议。如果您需要关于 JavaScript 和 WebAssembly 的建议,我可以为您提供一些建议:
99 3
|
9月前
|
Rust 安全 C#
c#如何使用WASM跨语言调用?
c#如何使用WASM跨语言调用?
78 0
c#如何使用WASM跨语言调用?
|
C# 网络架构
Blazor_WASM之4:路由
Blazor_WASM之4:路由
把wasm反编译出来
把wasm反编译出来
191 0
|
Web App开发 机器学习/深度学习 监控
WebAssembly 出来之前发生了什么
1995年javascript诞生,而且诞生的很快。 这货前10年迅速发展,紧接着就开始浏览器大战,都来抢占市场份额。 当时的互联网也不太发达,应用也没那么复杂,所以很多浏览器厂商还没考虑到js执行的效率问题。
104 0
WebAssembly 出来之前发生了什么
|
Kubernetes 安全 应用服务中间件
Higress 实战:30 行代码写一个 Wasm Go插件
在 11 月 15 号的直播 《Higress 开源背后的发展历程和上手 Demo 演示》中,为大家演示了 Higress 的 Wasm 插件如何面向 Ingress 资源进行配置生效,本文对当天的 Demo 进行一个回顾,并说明背后的原理机制。
Higress 实战:30 行代码写一个 Wasm Go插件