亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使這個 Wasm 函數在其母語中易于閱讀?

如何使這個 Wasm 函數在其母語中易于閱讀?

喵喔喔 2022-07-15 09:57:58
我有以下 Wasm 函數,我想了解它是某種 webgl 片段著色器:func $frag_shader (param i32)(local i32 i32 i32 i32 i32)  global.get 0  i32.const 32  i32.sub  local.tee 1  global.set 0  local.get 1  i32.const 16  i32.add  i32.const 1049267  i32.const 85  call 23  local.get 1  i32.load offset=16 align=4  local.set 2  block    block      block        block          local.get 1          i32.load offset=20 align=4          local.tee 3          local.get 1          i32.load offset=24 align=4          local.tee 4          i32.ne          br_if 0          local.get 2          local.set 5          local.get 3          local.set 4          br 1        end        local.get 3        local.get 4        i32.lt_u        br_if 1        block          local.get 4          br_if 0          i32.const 0          local.set 4          i32.const 1          local.set 5          local.get 3          i32.eqz          br_if 1          local.get 2          call 61          br 1        end        local.get 2        local.get 3        i32.const 1        local.get 4        call 52        local.tee 5        i32.eqz        br_if 2      end      local.get 1      i32.const 8      i32.add      local.get 5      local.get 4      call 49      local.get 0      local.get 1      i64.load offset=8 align=8      i64.store offset=0 align=4      local.get 1      i32.const 32      i32.add      global.set 0      return    end    i32.const 1049136    call 25    unreachable  end  local.get 4  i32.const 1  i32.const 0  i32.load offset=1050388 align=4  local.tee 1  i32.const 1  local.get 1  select  call_indirect 4  unreachableend我熟悉javascript,但這對我來說是無法理解的。找出如何將其轉換為更“友好”的 javascript 的最佳選擇是什么?有沒有工具可以幫助轉換為更好的格式?或者有沒有更容易理解的方法?
查看完整描述

2 回答

?
慕蓋茨4494581

TA貢獻1850條經驗 獲得超11個贊

您似乎在要求反編譯器,這是一種將編譯器生成的低級代碼轉換回源級代碼的工具。反編譯器通常用于逆向工程。

我不知道目前有任何用于 Wasm 的反編譯器。此外,您首先需要知道或猜測最初開發此代碼的源語言。


查看完整回答
反對 回復 2022-07-15
?
慕斯709654

TA貢獻1840條經驗 獲得超5個贊

所以你所擁有的是類似于 WAT 的東西,它是 WASM 文本格式。但是它不是有效的 WAT,所以我不確定你能用它做什么。

如果它是有效的 WAT,您可以使用WebAssembly Binary Toolkit中的 wat2wasm 將 WAT 轉換為二進制 WASM,然后使用 wasm2c 將其轉換為半可讀的 C。


查看完整回答
反對 回復 2022-07-15
  • 2 回答
  • 0 關注
  • 157 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號