2025 · 会议论文

这还是同一份代码吗?WebAssembly 二进制反编译技术的全面研究

Is This the Same Code? A Comprehensive Study of Decompilation Techniques for WebAssembly Binaries

以原生二进制反编译器为基线,衡量现有 WebAssembly 反编译器恢复 C 代码的能力。同一批 C 程序分别经 Emscripten 编译为 WebAssembly、经 clang 编译为原生代码,再由 wasm2c、w2c2 与 wasm-decompile,或由 Ghidra 与 RetDec 反编译。正确性评测复用 DecFuzzer 的 1,000 个 Csmith 程序,将输出重新编译并与原程序的执行结果比较;代码复杂度指标及与原始源码的 AST 相似度则在 PolyBenchC 和 CHStone 上以 -O0 至 -O2 测量。wasm2c 通过了全部 1,000 个正确性程序,wasm-decompile、Ghidra 和 RetDec 分别为 649、818 和 775 个。

研究范围与局限

正确性评测仅覆盖生成的单个函数,其中只有局部变量算术运算,不含库调用、指针或全局状态,因此 wasm2c 的结果不能证明其在一般程序上的正确性。w2c2 未纳入正确性评测,wasm-decompile 的输出仅在 -O0 下能被解析用于结构相似度评测。原生基线经过 DecFuzzer 的语法改写器处理,作者指出 Ghidra 与 RetDec 的部分失败可能源于这一评测步骤而非反编译器本身。可读性依据代码行数、嵌套深度、圈复杂度、Halstead 复杂度、goto 与类型转换数量等指标估计,并非人工研究。基准是作者使用单一 Emscripten/clang 工具链编译的 C 程序集,而非真实环境中的 WebAssembly 模块;工具版本仅说明为当时的最新版本。

与本合集的关联

为现有 WebAssembly 反编译器提供实证基线,与本节基于大语言模型的 WebAssembly 反编译论文及原生反编译器正确性测试互补。

发表与复核详情

发表载体
SecureComm 2024
发表状态
会议论文
出版/提交日期
2025 年 9 月 1 日
日期依据
Springer 提交的 Crossref 元数据将在线出版及 issued 日期记为 2025-09-01(标注为 First Online),纸质出版年份为 2026。本条目不以 2024 年 10 月的会议日期或 2024-11-04 的 arXiv 提交日期替代该出版日期。
arXiv 首次提交
2024 年 11 月 4 日
arXiv
2411.02278
已复核的 arXiv 版本
v1
DOI
10.1007/978-3-031-94448-2_6

Crossref 将该章节收录于 LNICST 丛书《Security and Privacy in Communication Networks》,第 108–130 页,会议信息为 SecureComm 2024(第 20 届,迪拜,2024 年 10 月 28–30 日)。Crossref 未给出丛书卷号,因此不予记录。Springer 文章页面拒绝自动化请求;简介与局限依据 13 页的 arXiv v1 稿件,其页脚标明 SecureComm 2024。本条目不声称其与正式出版章节逐页一致。论文称将开源其基准与分析框架,但未给出网址,也未找到相应发布。本次未运行代码或实验。

来源复核于

本合集仅做来源复核,未重新运行论文实验。请通过原始论文或 BibTeX 引用原作者。

报告条目过时 建议修正翻译

一手来源

  1. https://api.crossref.org/works/10.1007/978-3-031-94448-2_6
  2. https://api.crossref.org/works/10.1007/978-3-031-94448-2
  3. https://arxiv.org/abs/2411.02278v1
  4. https://arxiv.org/pdf/2411.02278v1