Как расшифровать код .wasm? Является ли это возможным?

Просто интересно узнать, что делает код на компьютере, я хотел бы расшифровать код .wasm, доступный по адресу https://lifeinspace.org/main.wasm. По сути, из того, что я нашел в Интернете, .wasm - это код веб-сборки, который мог быть:

Однако, поскольку теперь у меня есть код .wasm, есть ли способ или методика выяснить, что это был за высокоуровневый код?

Просто я хочу знать, что делает этот код .wasm. Когда я открываю этот код в блокноте ++, он полон символов и инструкций по сборке, что не имеет никакого смысла.

Основная причина, по которой я хочу знать, заключается в том, выполняет ли этот код какие-либо незаконные действия, такие как DDoS.

Я просканировал файл с помощью различных антивирусных инструментов, но не нашел ничего плохого.

Краткая предыстория: lifeinspace.org - это веб-сайт, на котором он утверждает, что сдает в аренду наши вычислительные мощности для научных расчетов. (дополнительная информация на https://money.stackexchange.com/questions/115754/lease-computing-power-to-earn-money-lifeinspace-org). Однако он запускает код браузера (lifeinspace.org/main.wasm), выполняющий в фоновом режиме некоторые другие процессы, о которых мы не знаем. Единственный способ узнать, что он делает, - это расшифровать приведенный выше код main.wasm. Следовательно, мне это интересно.


person sundar    schedule 16.10.2019    source источник


Ответы (2)


Скомпилированный файл wasm можно преобразовать в текстовый формат wasm. см. Страницу mdn. Вы можете использовать инструмент wast2wasm
Однако вы не можете получить больше источник высокого уровня (зависит от языка, компилятора и потери информации).
Не существует антивируса, который мог бы сканировать WASM-файл. Wasm запускается вашим браузером, и он очень хорошо защищает вас.
Самый простой способ следить за тем, что делает программа, - это просматривать журналы и запросы в своем браузере.

person Mubelotix    schedule 16.10.2019

WebAssembly - это двоичный формат, но, как говорится в ответе Mubelotix, вы можете преобразовать его в стандартный текстовый формат, чтобы проверить его (или вы можете использовать такой инструмент, как графический просмотрщик, который я разработал). Вы также можете преобразовать его в эквивалентный код на языке высокого уровня, на котором он был написан для данного декомпилятора, и это может помочь понять его, но вряд ли он будет где-либо близко к исходному исходному коду.

Однако модуль WebAssembly не имеет прямого доступа к внешнему миру, только через функции и объекты, которые вызывающий код JavaScript явно передает ему в качестве импорта. Это означает, что если, проверив определения, предоставленные ему при создании экземпляра, вы можете определить, что он не имеет доступа, например, сети, вы можете быть уверены, что она не может быть частью DDoS-атаки, без необходимости смотреть на сам код WebAssembly.

person The Wayward Developer    schedule 17.10.2019
comment
Спасибо большое. Я только что купил его на прибыль, полученную на сайте lifeinspace.org! Я очень хочу узнать о коде. - person sundar; 18.10.2019
comment
Спасибо, надеюсь, вы найдете это полезным. Если у вас есть какие-либо комментарии или вам нужна помощь, дайте мне знать по адресу [email protected]! - person The Wayward Developer; 18.10.2019