WASM 二进制格式解析器

输入 WASM 二进制的十六进制/Base64 或直接上传 .wasm 文件,在浏览器本地真实解析模块头、Section 列表、Import/Export 表和 Type 签名,不解析函数体指令流。

免费在线工具
Loading…

使用说明

  1. 选择输入方式:十六进制、Base64,或“上传 .wasm 文件”(支持点击选择或拖拽文件到上传区)。
  2. 十六进制/Base64 模式下直接把数据粘贴进文本框;文件模式下上传的 .wasm 文件会被浏览器用 FileReader 读取为二进制并自动转换展示。
  3. 点击“解析”(文件上传或拖拽会自动触发解析),页面会依次展示模块头信息(Magic Number、Version、总大小及合法性校验)、Section 列表(每个 Section 的 ID、名称、字节大小)、Import 表、Export 表、Type Section 函数签名。
  4. 不知道输入什么时点击“加载示例数据”,会载入一个带 Type Section 和 Function Section 的最小 WASM 模块十六进制示例。
  5. 点击“清空”可清除当前输入和解析结果重新开始。
  6. 底部提供 WASM 二进制格式知识表(12 种 Section ID 对照说明),可随时查阅。

功能介绍

  • 真实在浏览器本地解析 WASM 二进制数据(用 JavaScript 手写字节级解析,包括 LEB128 变长整数解码),不依赖任何第三方 WASM 工具链,也不上传文件到服务器。
  • 支持三种输入方式:十六进制字符串、Base64 字符串、直接上传/拖拽 .wasm 文件(FileReader 读取为 ArrayBuffer)。
  • 校验 Magic Number(00 61 73 6D)和 Version(01 00 00 00)是否合法,非法时给出明确错误提示。
  • 按顺序遍历并列出模块中的所有 Section(ID、名称、字节大小)。
  • 深入解析 Type Section(函数参数/返回值类型签名)、Import Section(模块名、字段名、类型:function/table/memory/global)、Export Section(导出名、类型、索引)三类关键 Section 的具体内容。
  • 对未深入解析的其他 Section(如 Code、Data、Element 等)仍会在列表中列出 ID 和大小,但不解析其内部字节内容——这是一个教学向工具,不解析完整指令流。
  • 提供 WASM 二进制格式的 12 种 Section 类型速查表。

使用场景

快速查看一个 .wasm 文件导出了哪些函数
拿到一个第三方 .wasm 文件不确定它导出了哪些接口,直接拖拽上传,在 Export 表里立刻看到所有导出项的名称、类型和索引,不需要安装 wasm-objdump 等命令行工具。
检查 WASM 文件是否损坏或格式非法
怀疑某个构建产物的 wasm 文件在传输或打包过程中被截断/损坏,上传后立刻看到 Magic Number/Version 校验是否通过,快速定位问题。
教学演示 WASM 二进制结构
给团队或学生讲解 WASM 模块的二进制布局,用本工具现场解析一个真实文件或示例十六进制,直观展示 Section 划分和 LEB128 编码。
核对手写或生成的 WASM 模块头是否正确
自己用工具链生成了一段 WASM 字节码想验证格式对不对,把十六进制粘贴进来解析,通过 Section 列表和 Type 签名确认结构符合预期。

常见问题

这个工具能解析完整的 WASM 指令(函数体里的操作码)吗?
不能。页面上已经明确说明这是教学工具,只解析并展示 Section 级别的信息(如 Type、Import、Export 的具体内容),Code Section 等函数体内的具体指令流不做解析,只会列出该 Section 的 ID 和字节大小。
上传的 .wasm 文件会被发送到服务器吗?
不会。文件通过浏览器原生 FileReader API 读取为本地 ArrayBuffer,所有解析都在你的浏览器里用 JavaScript 完成,不会上传到任何服务器。
解析失败提示“无效的十六进制数据”是什么原因?
通常是因为粘贴的字符串包含非十六进制字符,或者字符总数不是偶数(每两个字符对应一个字节),检查一下数据是否完整、有没有多余的空格或换行以外的字符。
Section 出现顺序错乱或缺少某个 Section 会怎样?
工具会按字节流从头到尾顺序遍历解析,遇到的每个 Section 都会按实际出现顺序列出,不会做顺序合法性校验(正常的 WASM 模块 Section 应按 ID 递增顺序出现,但工具不会因为顺序不对而报错)。