公司想尝试用 wasm 作为 js 代码保护的一种方式
如果确实不可行请敲醒我,我知道 wasm 本身不应该是这么用的
目前试了一下: https://github.com/Shopify/javy
按照他的教程编译后用 wasmtime 确实可以运行,但是用 JS 的 WebAssembly 接口调用就会报错:
WebAssembly.instantiateStreaming(fetch("xxxxxxx/index.wasm"), {
wasi_snapshot_preview1: {
fd_close: (e) => {
console.log("fd_close", e);
},
fd_write: (e) => {
console.log("fd_write", e);
},
fd_read: (e) => {
console.log("fd_read", e);
},
fd_seek: (e) => {
console.log("fd_seek", e);
},
environ_get: (e) => {
console.log("fd_environ_get", e);
},
environ_sizes_get: (e) => {
console.log("fd_environ_sizes_get", e);
},
clock_time_get: (e) => {
console.log("clock_time_get", e);
},
fd_fdstat_get: (e) => {
console.log("fd_fdstat_get", e);
},
proc_exit: (e) => {
console.log("proc_exit", e);
},
},
env: {},
}).then((obj) => {
console.log(obj.instance.exports.main({ n: 100, bar: "test" }));
});
RuntimeError: unreachable
at xxxxxxx/index.wasm:wasm-function[193]:0x110ec
at xxxxxxx/index.wasm:wasm-function[318]:0x1a4fc
at xxxxxxx/index.wasm:wasm-function[28]:0x1489
at xxxxxxx/index.wasm:wasm-function[88]:0x728f
at xxxxxxx/index.wasm:wasm-function[57]:0x38ab
at xxxxxxx/index.wasm:wasm-function[287]:0x18880
at xxxxxxx/index.wasm:wasm-function[39]:0x1cb6
at xxxxxxx/index.wasm:wasm-function[193]:0x11422
at xxxxxxx/index.wasm:wasm-function[318]:0x1a4fc
at xxxxxxx/index.wasm:wasm-function[28]:0x1489
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.