ここに .WASM ファイルをドロップ
またはファイルを選択してください。.WAT に変換してダウンロード用ファイルを提供します。
なぜ WASM を WAT に変換するのですか?
WAT は WebAssembly の人間が読めるテキスト形式です。バイナリ自体は判読不能なため、モジュールが実際に何を行っているか(関数、インポート、エクスポートなど)を読み取り、監査、またはデバッグするために、人々は .wasm を .wat に変換します。
WASM から WAT への変換方法
wasm-tools print OPEN-SOURCE
Bytecode Alliance のツールキットを使用して、wasm-tools print module.wasm -o module.wat を実行してテキスト形式を書き出します。-o を省略すると標準出力に表示されます。
wasm2wat (WABT) OPEN-SOURCE
WebAssembly Binary Toolkit を使用して、wasm2wat module.wasm -o module.wat を実行します。読みやすい関数ラベルを付けるには --generate-names を、式を折りたたむには -f を追加します。
これらの形式について
品質と注意点
- 変換は忠実ですが、元のソースではありません。コンパイル前の C/C++/Rust ではなく、低レベルの WASM 命令が表示されます。
- 名前生成フラグを渡さない限り、名前のない関数は数値インデックスとして表示されるため、大規模なモジュールの追跡は困難になります。
- WAT を編集して
wat2wasmで再アセンブルすることは可能ですが、些細な内容以外では間違いが発生しやすくなります。
よくある質問
wasm-to-wat はロスレスですか?
はい、モジュールの構造と命令に関してはロスレスです。バイナリを忠実に表現しますが、元の高レベルソースを復元するわけではありません。
wasm-tools と WABT のどちらを使うべきですか?
どちらも機能します。
wasm-tools は Bytecode Alliance の CLI で、wasm2wat は WABT に同梱されています。すでにインストールされている方を使用してください。WAT を .wasm に戻すことはできますか?
はい、
wat2wasm module.wat -o module.wasm (WABT) を使用してバイナリに再アセンブルできます。読みやすい関数名を取得するにはどうすればよいですか?
wasm2wat に --generate-names を渡すか、元のビルド時に name セクションを保持するようにしてください。