论文阅读笔记:WaDec: Decompiling WebAssembly Using Large Language Model
1. 来源出处
- 论文标题: WaDec: Decompiling WebAssembly Using Large Language Model
- 作者: Xinyu She, Yanjie Zhao, Haoyu Wang
- 会议: 39th IEEE/ACM International Conference on Automated Software Engineering (ASE 2024)
- DOI: 10.1145/3691620.3695020
2. 研究背景与问题陈述
WebAssembly(Wasm)是一种跨平台二进制指令格式,旨在实现接近本地速度的高效执行。尽管其在多种领域(如区块链、物联网和云计算)得到了广泛应用,但由于其二进制本质,Wasm 在可读性和调试方面面临挑战。为了进行逆向工程,开发者和研究人员依赖于反编译工具。然而,传统反编译器在生成可读代码方面存在显著问题,这使得高效的反编译成为一种迫切需求。
2.1 先前方法的不足
-
传统静态工具的限制:
- 可读性差:如 Ghidra、Wasm2c 和 Wasm-decompile 等工具生成的代码缺乏可读性和结构化组织,通常只能逐条指令翻译,保留了过多的低级指令风格。
- 代码膨胀:传统工具的输出常包含冗余中间表示,导致代码量膨胀,难以维护。
- 无法处理代码片段:这些工具通常只能处理完整程序,而无法应对代码片段。
-
基于机器学习的方法:
- 响应不稳定:ML 模型输出通常是概率性的,复杂输入(如嵌套循环)会引起输出不稳定或无关内容。
- 嵌套循环处理能力弱:AI 反编译器在处理复杂嵌套结构时表现不佳,影响代码逻辑的准确还原。
2.2 当前面临的挑战
- Wasm 的特