主页 > imtoken testflight下载 > 一种基于以太坊虚拟机的代码插入框架系统技术方案

一种基于以太坊虚拟机的代码插入框架系统技术方案

imtoken testflight下载 2023-10-17 05:07:06

本发明专利技术公开了一种基于以太坊虚拟机的代码插入框架系统,包括分析脚本加载模块、分析脚本执行模块、以太坊虚拟机插入模块、动态污点引擎模块、分析脚本接口模块; 一方面,方虚拟机插桩模块在以太坊虚拟机中插入三种类型的插入点,以中断以太坊虚拟机的执行; 另一方面,提供了各种数据支持的分析脚本接口模块; 分析脚本加载模块,用于加载分析脚本并记录用户关心的插入点; 动态污点引擎模块,用于为分析脚本接口模块提供与数据流分析相关的各种数据支持; 分析脚本接口模块是分析脚本执行模块,提供了查看虚拟机执行过程中的各类数据和数据流分析相关的各类数据的接口。 本发明的专利技术通过提供丰富的接口,帮助分析人员降低开发成本,大大减少运行性能损失。

所有详细技术资料下载

【技术实现步骤摘要】

一种基于以太坊虚拟机的代码检测框架系统

本专利技术涉及程序分析信息

,具体涉及一种基于以太坊虚拟机的代码检测框架系统。

技术介绍

近年来,随着比特币系统的顺利运行,区块链技术受到了全世界的关注,而以太坊的诞生则是又一里程碑式的事件。 作为市值第二大的区块链平台,以太坊最重要的突破和特点是配备了图灵完备的以太坊虚拟机,可以支持智能合约的执行。 以太坊的原生以太坊以及在以太坊上发行的很多数字货币已经具备了相当的金融属性。 以太坊网络由运行以太坊客户端软件的节点组成,主要包括Go-Ethereum(简称Geth)和Parity。 由于区块链技术、以太坊平台、智能合约都是新生事物,又因为其金融属性,近年来,不少恶意攻击者引来不少恶意攻击者在以太坊平台上兴风作浪以太坊支持什么类型的脚本,严重影响了以太坊生态。以太坊,比如臭名昭著的重入攻击,对以太坊平台造成了巨大的影响。 程序插桩技术就是在保证被测程序原有逻辑完整性的基础上,向程序中插入一些“探针”。 本质上是一个信息收集的代码段,执行“探针”抛出程序运行。 通过对这些数据的分析,可以得到程序的控制流和数据流信息,进而得到逻辑覆盖率等动态信息。 程序检测广泛用于传统的程序分析中。 随着以太坊平台各种攻击漏洞的出现,结合程序插桩技术检测恶意行为的需求越来越迫切。 近年来,出现了一些基于插桩技术的攻击检测方法,但由于缺乏成熟的插桩技术,目前以太坊与插桩技术的结合仍是通过直接将“探针”插入以太坊虚拟机,需要分析师对以太坊虚拟机的代码逻辑有很好的理解,并且能够针对不同类型的攻击进行检测,需要不同的检测方法,这不仅对分析师的开发成本要求高,而且缺乏可扩展性。 Geth中嵌入的trace函数提供了一个简单的插桩框架,在每一个操作码(opcode)执行之前都会跳转到插桩代码的执行环境,不管用户是否关心操作码(opcode),这种设计将带来额外的上下文切换开销,无法应对大规模实验。 并且它没有动态污点引擎,分析人员在使用时仍然需要付出高昂的开发成本来跟踪程序的数据流向。

技术实现思路

为了解决现有技术中存在的上述缺陷,本专利技术公开了一种基于以太坊虚拟机的代码插入框架系统,可以帮助用户以最低的开发成本在以太坊虚拟机层面理解和检测。恶意行为。 具体技术方案如下:一种基于以太坊虚拟机的代码插入框架系统,其特征在于,该系统包括分析脚本加载模块、分析脚本执行模块、以太坊虚拟机插入模块、动态污点引擎模块。分析脚本接口模块; 一方面,以太坊虚拟机插入模块在以太坊虚拟机中插入三种插入点,中断以太坊虚拟机的执行; 另一方面,它是分析脚本接口模块,在以太坊虚拟机执行过程中提供各种类型的数据支持; 三种类型的插入点包括常规交易插入点、智能合约插入点和操作代码插入点; 常规交易是指非智能合约账户发起的交易; 分析脚本加载模块,用于加载分析脚本并记录用户关心的插入点; 分析脚本执行模块以太坊支持什么类型的脚本,用于执行分析脚本; 动态污点引擎模块,用于为分析脚本接口模块提供与数据流分析相关的各类数据支持; 分析脚本接口模块为分析脚本执行模块提供接口,参见以太坊虚拟机执行过程中数据流分析相关的各类数据。 此外,常规事务类型检测点包括常规事务的开始和结束。

进一步地,智能合约插入点包括智能合约执行的开始和结束。 此外,操作码类型的插桩点包括操作代码执行之前和之后。 更进一步,虚拟机在执行过程中的各类数据包括以太坊虚拟机中的栈、内存、涉及的智能合约的交易输入字段、状态变量和交易返回字段、当前的交易哈希交易和区块号; 其中,栈和内存是指以太坊虚拟机中的数据存储结构。 进一步的,数据流分析相关的各类数据是指动态污点引擎模块独立维护的用于存储和传播污点和影子的影子堆栈、影子内存、影子交易输入字段、影子状态变量等相关智能合约。交易返回字段。 该专利技术的有益效果如下:该专利技术的代码检测框架体系可以帮助分析人员在以太坊虚拟机层面理解和检测恶意行为。 Instrumentation的事务分析任务可以为用户节省大量的开发成本; 通过提供接口查看以太坊虚拟机执行过程中的各类数据,为用户了解以太坊虚拟机底层逻辑节省了开发成本; 污点引擎提供的查看数据流相关各类数据的接口,节省了用户记录数据流的开发成本; 通过提前加载用户脚本,记录用户关心的插入点,在执行过程中可以按需调用。 分析脚本以避免不必要的上下文切换造成的性能损失。

附图简要说明图1为本专利技术基于以太坊虚拟机的代码检测框架系统示意图。 具体实施方式下面结合附图及优选实施例对本专利技术进行详细说明,将使本专利技术的目的和效果更加清楚。 限制这项专利技术。 如图1所示,本专利技术基于以太坊的代码插入框架系统包括:(1)以太坊虚拟机插入模块,一方面在以太坊虚拟机中插入三种类型的插入点,用于一方面中断以太坊虚拟机的执行,另一方面为以太坊虚拟机执行过程中的分析脚本接口模块提供各种数据支持; 三种插入点包括: ① 常规交易插入点:常规交易的开始和常规交易的结束。 ②智能合约检测点:智能合约执行的开始和结束。 ③ Opcode类插桩点:opcode执行前后。 上述常规交易是指非智能合约账户发起的交易。 虚拟机执行过程中的各类数据包括以太坊虚拟机的栈、内存、交易输入字段,涉及的智能合约的状态变量和交易返回字段,当前交易的交易哈希,以及它所在的区域。 块号; 栈和内存是指以太坊虚拟机中的数据存储结构。 (2)分析脚本加载模块,用于加载分析脚本并记录用户关心的插入点,目的是避免不必要的上下文切换带来的性能损失; 上下文切换是指从以太坊虚拟机的执行上下文切换到分析脚本引擎的执行上下文。

(3)分析脚本执行模块,用于执行分析脚本。 (4)动态污点引擎模块,用于为分析脚本接口模块提供与数据流分析相关的各类数据支持; 数据流分析相关的各类数据参考动态污点引擎模块自维护影子栈、影子内存、影子交易输入字段、涉及智能合约的影子状态变量、影子交易返回字段用于存储并传播污点。 (5)分析脚本接口模块,用于为分析脚本执行模块提供接口,用于查看以太坊虚拟机执行过程中的各种数据和数据流分析相关数据。 如图1所示,本专利技术基于以太坊虚拟机的代码插入框架系统部署在Geth内嵌的以太坊虚拟机中,分析脚本执行模块使用go-duktape提供的JavaScript执行引擎。 提供给用户的开发脚本语言为JavaScript。本领域的普通技术人员可以理解,以上描述仅为本发明专利技术的一个优选示例,并不用于限制本发明专利技术。

【技术保护要点】

1. 一种基于以太坊虚拟机的代码插桩框架系统,其特征在于,该系统包括分析脚本加载模块、分析脚本执行模块、以太坊虚拟机插桩模块、动态污点引擎模块和分析脚本接口模块。 ;/n以太坊虚拟机插桩模块一方面在以太坊虚拟机中插入三种插桩点来中断以太坊虚拟机的执行; 另一方面,是分析脚本接口模块,在以太坊虚拟机执行过程中提供各类数据支持; 三种类型的插入点包括常规交易插入点、智能合约插入点和操作代码插入点; 常规A交易是指非智能合约账户发起的交易。 /n描述的分析脚本加载模块,用于加载分析脚本,记录用户关心的插入点; /n中描述的分析脚本执行模块,用于执行分析脚本; /n中描述的动态污点引擎模块,用于为分析脚本接口模块提供与数据流分析相关的各类数据支持; 各类数据及各类数据相关的数据流分析。 /n

【技术特点概要】

1. 一种基于以太坊虚拟机的代码插桩框架系统,其特征在于,该系统包括分析脚本加载模块、分析脚本执行模块、以太坊虚拟机插桩模块、动态污点引擎模块和分析脚本接口模块。 ;

一方面,以太坊虚拟机插桩模块在以太坊虚拟机中插入三种插桩点,中断以太坊虚拟机的执行; 另一方面,它为分析脚本接口模块提供以太坊虚拟机。 虚拟机运行过程中的各类数据支持; 三种类型的插入点包括常规交易插入点、智能合约插入点和操作代码插入点; 常规交易是指非智能合约账户发起的交易。

分析脚本加载模块,用于加载分析脚本,记录用户关心的插入点;

分析脚本执行模块,用于执行分析脚本;

动态污点引擎模块,用于为分析脚本接口模块提供与数据流分析相关的各类数据支持;

分析脚本接口模块为分析脚本执行模块提供接口,用于查看以太坊虚拟机执行过程中的各种数据和数据流分析相关数据。

2.根据权利要求1所述的基于以太坊虚拟机的代码插装框架系统,其特征在于,常规交易插装...

【专利技术性质】

技术研发人员:吴思伟、周亚进、吴磊、任奎、

申请人(专利权):浙江大学,

类型:发明

其他省市:浙江; 33

下载所有详细技术资料 我是该专利的所有者