中文

为 EVM 字节码构建复用敏感的控制流图 (CFG)

软件工程 2025-05-21 v1

摘要

智能合约的出现带来了安全风险,使用户面临失去有价值加密货币的威胁,凸显了对其进行细致审查的紧迫性。然而,由于编译器引入的代码复用导致原语存在缺陷,EVM 字节码中智能合约的静态分析面临障碍。代码复用是指相同代码在不同上下文中执行的现象,它在复用不敏感的 CFG 中引发了语义歧义和冗余的控制流依赖。本研究深入探讨了 EVM 字节码中的代码复用问题,概述了常见的复用模式,并引入了 Esuer,这是一种在构建 CFG 时动态识别代码复用的工具。Esuer 利用污点分析动态识别复用上下文,通过比较基本块的多个上下文来识别代码复用,并复制被复用的代码以生成复用敏感的 CFG。针对 10,000 个常见智能合约的评估,并与六种领先工具进行对比,证明了 Esuer 显著提升 CFG 精度的能力。它实现了 99.94% 的执行轨迹覆盖率和 97.02% 的复用代码准确识别 F1 分数。此外,Esuer 达到了 99.25% 的成功率,平均执行时间为 1.06 秒,超越了生成复用不敏感 CFG 的工具。Esuer 在辅助识别 tx.origin 和重入漏洞等漏洞方面表现出有效性,分别达到了 99.97% 和 99.67% 的 F1 分数。

关键词

引用

@article{arxiv.2505.14437,
  title  = {Building Reuse-Sensitive Control Flow Graphs (CFGs) for EVM Bytecode},
  author = {Dingding Wang and Jianting He and Yizheng Yang and Lei Wu and Rui Chang and Yajin Zhou},
  journal= {arXiv preprint arXiv:2505.14437},
  year   = {2025}
}