paperbot · PL 论文追踪

全部论文 待读 收藏

P2 NotDec: WebAssembly Decompilation With Inter-Procedural Type Recovery

NotDec:基于跨过程类型恢复的 WebAssembly 反编译
ICSE Proceedings of the 2026 IEEE/ACM 48th International Conference on Software Engineering2026匹配度 3/10 · 这是一篇静态分析/反编译工作(WebAssembly 类型恢复、SSA IR、抽象解释),与用户关注的“程序分析”有交集,但不涉及 PL↔AI、LLM/Agent 改进分析、浮点程序分析或贝叶斯程序分析这些核心方向,属于纯传统的程序分析而非用户追踪的交叉问题。引用 0 inbox
Jikai Wang, Ningyu He, Tianming Liu, Junhai Wang, Haoyu Wang
crossref: 2026-09-12arxiv: 2026-09-12

AI 速览

一句话:提出 WebAssembly 反编译框架 NotDec,通过跨过程类型恢复生成可读且语义一致的 C 代码。

WebAssembly 已被浏览器、容器、IoT 与无服务器平台广泛采用,审计其中隐藏的漏洞与恶意行为成为关键需求,但现有反编译工具存在结果冗长、可读性差、类型恢复能力有限的问题。本文提出 NotDec 反编译框架:扩展 WebAssembly 类型检查算法将字节码提升为基于 SSA 的 IR,采用跨过程类型恢复算法 Retypd 并结合指针与数值区分方法恢复复杂数据结构,再利用 Memory SSA 与保语义的结构化控制流分析输出可读、语义一致的 C 代码。在 5,241 个 Juliet 样本与全部 Howard 数据集程序上,NotDec 重编译成功率达 100%,远超 Ghidra 的 45.95%;在真实程序上恢复 85.33% 的结构体成员访问,而 Ghidra 仅为 9.24%。完整跨过程版本在大二进制上面临可扩展性挑战,过程内变体 NOTDEC_F 则效率更优,内存不足 Ghidra 一半、在未优化二进制上执行时间最多减少 97%。

问题
现有 WebAssembly 反编译工具输出冗长、可读性差且类型恢复能力有限,难以支撑安全研究者与终端用户理解二进制行为、审计漏洞与恶意意图。
方法
NotDec 扩展 WebAssembly 类型检查算法将字节码提升为基于 SSA 的 IR,采用带指针与数值区分的跨过程类型恢复算法 Retypd,并结合 Memory SSA 与保语义的结构化控制流分析生成 C 代码。
评估
在 5,241 个 Juliet 样本与 Howard 数据集上测量重编译成功率(100% 对比 Ghidra 45.95%),在真实程序上评估结构体成员访问的类型恢复准确率(85.33% 对比 9.24%),并比较内存占用与执行时间等性能开销。
原文摘要(Abstract)

With WebAssembly widely supported in browsers, containers, IoT devices, and serverless platforms and increasingly adopted as a universal low‑level bytecode standard, auditing its hidden vulnerabilities and malicious intentions has become critical. Decompiling existing WebAssembly modules can help security researchers and end users understand binary behavior, but current tools suffer from verbose result, poor readability, and limited type recovery. We present NotDec, an advanced WebAssembly decompilation framework. NotDec extends the WebAssembly type checking algorithm to lift bytecode into an SSA‑based IR, applies the inter-procedural type recovery algorithm Retypd with pointer and numeric value differentiation methods to recover complex data structures, and leverages Memory SSA alongside semantics‑preserving structured control‑flow analysis to emit readable, semantically consistent C code. NotDec achieves 100% recompilation success rate on all 5,241 Juliet samples and all Howard dataset programs, significantly outperforming baselines including Ghidra (45.95% success rate). On type recovery accuracy, NotDec recovers 85.33% of struct member accesses in real-world programs, vastly exceeding Ghidra’s 9.24%. While the full inter-procedural version faces scalability challenges on large binaries, the intra-procedural variant \({{\rm\small {NOTDEC}}}_F\) demonstrates superior efficiency, consuming less than half of Ghidra’s memory and up to 97% less execution time on unoptimized binaries.

链接与引用

DOI 原文 · arXiv ·

BibTeX
@inproceedings{paperbot11765,
  title = {NotDec: WebAssembly Decompilation With Inter-Procedural Type Recovery},
  author = {Jikai Wang and Ningyu He and Tianming Liu and Junhai Wang and Haoyu Wang},
  booktitle = {ICSE},
  year = {2026},
  doi = {10.1145/3744916.3787762}
}