0

只是想知道代码在计算机中的作用,我想解码一个 .wasm 代码 - 可在https://lifeinspace.org/main.wasm获得。基本上,从我在互联网上找到的内容来看,.wasm 是一个 Web 汇编代码,它可能是:

但是,既然我现在有了 .wasm 代码,有没有办法或技术来弄清楚高级代码是什么?

只是我想知道这个 .wasm 代码的作用。当我在 notepad++ 中打开这段代码时,它充满了符号和汇编指令,这没有任何意义。

我想知道的主要原因是这段代码是否会做任何非法的事情,比如 DDoS。

我使用不同的防病毒工具扫描了文件,但没有发现任何坏东西。

快速背景:lifeinspace.org 是一个网站,在外部它声称租用我们的计算能力进行科学计算。(更多信息在https://money.stackexchange.com/questions/115754/lease-computing-power-to-earn-money-lifeinspace-org)。但是,它在后台运行浏览器代码(lifeinspace.org/main.wasm)在后台执行一些我们不知道的其他进程。了解它的作用的唯一方法是解码上面的 main.wasm 代码。因此我对它很好奇。

4

2 回答 2

2

您的 wasm 编译文件可以转换为 wasm 文本格式,请参见 mdn page。您可以使用wast2wasm 工具
但是您无法获得更高级别的源代码(取决于语言、编译器并且会丢失信息)。
没有可以扫描 wasm 文件的防病毒软件。Wasm 由您的浏览器执行,他很好地保护了您。
监视程序所做的最简单的方法是使用浏览器查看日志和请求。

于 2019-10-16T20:16:02.247 回答
1

WebAssembly 是一种二进制格式,但正如 Mubelotix 的回答所说,您可以将其转换为标准文本格式来检查它(或者您可以使用我开发的图形查看器之类的工具)。您还可以在给定反编译器的情况下将其转换为使用高级语言编写的等效代码,这可能有助于理解它,但它不太可能接近原始源代码。

但是,WebAssembly 模块无法直接访问外部世界,只能通过调用 JavaScript 代码作为导入显式传递给它的函数和对象。这意味着如果通过检查实例化时对其可用的定义,您可以确定它无法访问例如网络,您可以确定它不会成为 DDoS 攻击的一部分,而无需查看 WebAssembly 代码本身。

于 2019-10-17T23:14:33.507 回答