如何解码.wasm代码?可能吗?

时间:2019-10-16 17:14:58

标签: bots webassembly botnet

我只是想知道计算机中的代码在做什么,所以我想对.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代码。因此,我对此感到好奇。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

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