目前,大多数编程语言都可以编译为WebAssembly (官方或通过外部包)。
所以我想知道...可以反编译web程序集文件吗?所以我们可以用一种可以编译成.wasm
的语言编写代码,然后使用另一种语言进行反编译?然后,从.wasm
文件生成.java
、.js
、.py
、.go
等。有可能吗?
发布于 2019-06-11 19:08:06
据我所知,目前还没有WebAssembly反汇编器。这方面的一个重要障碍是在编译过程中会丢弃大量信息。您感兴趣的语言(JavaScript、Java、Python、Go)具有字符串、类、结构等结构。它们都不存在于WebAssembly级别。此外,函数和变量名(通常)不会出现在生成的WebAssembly模块中。
虽然你可以创建一个工具,将WebAssembly模块‘翻译’成Java、Python、Go或JavaScript程序,使其在执行时表现出正确的行为,但它看起来与编译成WebAssembly的原始程序完全不同。
发布于 2019-06-13 19:22:09
有一个从webassembly二进制文件到C语言的转换器。
https://github.com/WebAssembly/wabt/tree/master/wasm2c
正如在另一个答案中所写的,它看起来不会像原始源文件的任何东西,但至少它应该能够将逻辑转换为C语言,然后通过将其包装到库中,也可以与其他语言一起使用。
发布于 2020-05-05 16:58:17
@KadoBOT你可以使用wasm -depile.exe来反编译你的wasm文件https://github.com/WebAssembly/wabt
https://stackoverflow.com/questions/56541790
复制相似问题