Neural-FEBI:以太坊虚拟机字节码中精确的函数识别
软件工程
2023-02-02 v2
摘要
数以百万计的智能合约已部署到以太坊平台,构成了潜在的攻击对象。因此,分析合约二进制代码至关重要,因为其源代码不可用,分析涉及包含函数入口识别与边界检测的函数识别。此类边界对许多智能合约应用(例如逆向工程与画像分析)十分关键。遗憾的是,由于缺乏内部函数调用语句以及编译器引起的指令重排,从这些去除符号信息的合约二进制代码中识别函数颇具挑战。近期若干现有工作过度依赖一组手工启发式规则,从而引入了若干错误。为解决此问题,我们提出一种新颖的基于神经网络的 EVM 字节码函数入口与边界识别框架(neural-FEBI),其不依赖固定的手工规则集。相反,它使用两级双向长短期记忆网络(bi-LSTM)与条件随机场网络来定位函数入口。该框架还设计了一种控制流遍历算法,以确定从函数入口可达的代码段作为其边界。在收集为二进制的 38,996 个公开可用智能合约上的若干实验表明,neural-FEBI 在不同数据集上函数入口识别任务的最低与最高 F1 分数分别为 88.3 与 99.7。其在函数边界识别任务上的性能相较 SOTA 也从 79.4% 提升至 97.1%。我们进一步证明,所识别的函数信息可用于构建更精确的过程内控制流图(CFG)与调用图。实验结果确认所提框架显著优于通常基于手工启发式规则的现有最优方法。
引用
@article{arxiv.2301.12695,
title = {Neural-FEBI: Accurate Function Identification in Ethereum Virtual Machine Bytecode},
author = {Jiahao He and Shuangyin Li and Xinming Wang and Shing-Chi Cheung and Gansen Zhao and Jinji Yang},
journal= {arXiv preprint arXiv:2301.12695},
year = {2023}
}
备注
19 pages, 13 figures