# WaDec：基于大语言模型的 WebAssembly 反编译

> WaDec 使用循环级 wat–C 代码片段对，以 LoRA 微调 CodeLlama-7b，将 WebAssembly 文本格式（wat）反编译为 C。它按依赖关系排列函数并进行切片，使每个输入至多包含一个循环，嵌套循环以标记替代。提示中补充被调用函数的声明、此前已定义的局部变量以及偏移到字符串的映射；随后重组输出，恢复字符串常量并重命名变量。训练数据来自经 Emscripten 编译的 51,768 个 the-stack-dedup 程序和 377 个 TheAlgorithms/C 程序。作者在 3,977 个 C 文件上报告，代码膨胀率为 3.34%，可重新编译率为 52.11%，可重新执行率为 43.55%，输出一致率为 27.15%，并与 Wasm2c 及 Ghidra 进行比较。

- 作者：Xinyu She; Yanjie Zhao; Haoyu Wang
- 原标题：WaDec: Decompiling WebAssembly Using Large Language Model
- 发表载体：ASE 2024
- 发表状态：会议论文
- 出版／提交日期：2024 年 10 月 27 日
- 日期依据：ACM 提交的 Crossref 元数据将纸质与在线出版日期均记为 2024-10-27。该日期恰为 10 月 27 日至 11 月 1 日会议的首日；本条目依据出版方记录，而非根据会议日程推定。
- arXiv 首次提交：2024 年 6 月 17 日
- arXiv：2406.11346
- 已复核的 arXiv 版本：v3
- DOI：10.1145/3691620.3695020
- 来源复核于：2026-10-18
- 收录于：2026-10-19
- 原始论文：<https://dl.acm.org/doi/10.1145/3691620.3695020>
- PDF：<https://arxiv.org/pdf/2406.11346v3>
- 代码：<https://github.com/XinyuShe/WaDec/tree/e244f7172539478a5b64bbb86e1fd03e527cb6be>
- BibTeX：<https://awesomerea.org/papers/citations/paper-wadec.bib>
- 目录页面：<https://awesomerea.org/zh/papers/paper-wadec/>
- 记录 JSON：<https://awesomerea.org/papers/paper-wadec/record.json>
- 英文版：[English](https://awesomerea.org/papers/paper-wadec/index.md)

## 研究范围与局限

所报告的比率是作者在经 Emscripten 编译为 Wasm 的 C 程序上取得的结果。约一半输出可重新编译，不到一半可重新执行，约四分之一能复现原始输出，因此反编译代码总体上并不语义等价。含 3,977 个文件的基准与训练程序来自相同的两个来源。未评估优化构建：作者既未针对 O1/O2 代码调整方法，也未用其训练模型。模型处理数据结构的能力也较弱，常将其拆成独立变量或数组。研究仅涉及 C 源码，未评估由其他语言或工具链生成的 Wasm。基线为 Wasm2c 与 Ghidra 的 Wasm 插件；由于没有大语言模型能在未经微调时反编译 Wasm 函数，此类基线被排除。切片意味着一个函数可能需多次反编译，每个提示约需 0.1 至 2 秒。

## 与本合集的关联

补充带重新编译与重新执行检查的大语言模型 WebAssembly 反编译方法，与本节中的原生二进制反编译研究及目录中的 WebAssembly 工具互补。

## 发表与复核说明

ACM 提交的 Crossref 元数据给出三位作者的顺序、481–492 页码及 2024-10-27 出版日期。所审阅的 arXiv v3（2024-09-11，备注“This paper was accepted by ASE 2024”）载有 ACM 引用格式与 DOI；v1 发布于 2024-06-17。论文脚注将 github.com/XinyuShe/WaDec 列为复现产物，但其参考文献和 README 中的克隆命令仍指向匿名评审镜像。所审阅的 2024-07-24 快照包含数据集构建笔记本、一份评估 JSON 文件以及推断与指标脚本，但没有许可证文件或声明。README 仅列出 Python 3.x 与 Git 作为前提条件，并指向 wadecc/FGW2C 数据集（110,096 条样本，未声明许可证）及 wadecc/Wat2c 模型；后者是 LoRA 适配器，其配置将 codellama/CodeLlama-7b-hf 列为基座模型，因此基座模型自身的许可证同样适用。

## 一手来源

1. <https://dl.acm.org/doi/10.1145/3691620.3695020>
2. <https://api.crossref.org/works/10.1145/3691620.3695020>
3. <https://arxiv.org/abs/2406.11346>
4. <https://arxiv.org/pdf/2406.11346v3>
5. <https://github.com/XinyuShe/WaDec/blob/e244f7172539478a5b64bbb86e1fd03e527cb6be/README.md>
6. <https://github.com/XinyuShe/WaDec/blob/e244f7172539478a5b64bbb86e1fd03e527cb6be/Scripts/infering.py>
7. <https://huggingface.co/datasets/wadecc/FGW2C/blob/572a8501594303a369df1b0152812a5e9e0f16ed/README.md>
8. <https://huggingface.co/wadecc/Wat2c/blob/e7e740ea819fedbc7da19b7a22f82b4b2c049a90/adapter_config.json>

## 关于此条目

已依据论文及一手来源复核。请通过原始论文或 BibTeX 引用原作者。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
