中文

面向 WebAssembly 逆向工程的多模态学习

软件工程 2024-04-05 v1 机器学习 编程语言

摘要

WebAssembly (Wasm) 在性能关键和安全敏感任务中的日益广泛应用,推动了对 WebAssembly 程序理解和逆向工程的需求。近期的研究引入了基于机器学习 (ML) 的 WebAssembly 逆向工程工具。然而,特定任务 ML 解决方案的泛化能力仍然具有挑战性,因为其有效性依赖于充足的高质量特定任务标注数据的可用性。此外,以往的工作忽略了源代码及其文档中存在的高层语义。鉴于存在大量可编译为 WebAssembly 的带文档源代码,我们提出并发地学习它们的表示,并利用它们的相互关系以实现有效的 WebAssembly 逆向工程。在本文中,我们提出了 WasmRev,这是首个面向 WebAssembly 逆向工程的多模态预训练语言模型。WasmRev 在包含源代码、代码文档和编译后 WebAssembly 的大规模多模态语料库上使用自监督学习进行预训练,无需标注数据。WasmRev 结合了三个量身定制的多模态预训练任务,以捕获 WebAssembly 的各种特征和跨模态关系。WasmRev 仅需训练一次即可生成通用表示,通过仅需少量标注数据的少样本微调,即可广泛支持 WebAssembly 逆向工程任务,从而提高数据效率。我们将 WasmRev 微调至三个重要的逆向工程任务:类型恢复、函数用途识别和 WebAssembly 摘要生成。结果表明,在多模态样本语料库上预训练的 WasmRev 为这些任务奠定了坚实基础,实现了高任务准确率,并优于 WebAssembly 逆向工程领域最先进的 ML 方法。

关键词

引用

@article{arxiv.2404.03171,
  title  = {Multi-modal Learning for WebAssembly Reverse Engineering},
  author = {Hanxian Huang and Jishen Zhao},
  journal= {arXiv preprint arXiv:2404.03171},
  year   = {2024}
}

备注

Accepted by ISSTA '24