CN115617395A - 一种融合全局和局部特征的智能合约相似性检测方法 - Google Patents

一种融合全局和局部特征的智能合约相似性检测方法 Download PDF

Info

Publication number
CN115617395A
CN115617395A CN202211262995.XA CN202211262995A CN115617395A CN 115617395 A CN115617395 A CN 115617395A CN 202211262995 A CN202211262995 A CN 202211262995A CN 115617395 A CN115617395 A CN 115617395A
Authority
CN
China
Prior art keywords
similarity
contract
intelligent contract
intelligent
function
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211262995.XA
Other languages
English (en)
Inventor
刘振广
伍艳惠
钱鹏
杜泽仁
吴汉杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Gongshang University
Original Assignee
Zhejiang Gongshang University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhejiang Gongshang University filed Critical Zhejiang Gongshang University
Priority to CN202211262995.XA priority Critical patent/CN115617395A/zh
Publication of CN115617395A publication Critical patent/CN115617395A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/75Structural analysis for program understanding
    • G06F8/751Code clone detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/427Parsing

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Complex Calculations (AREA)

Abstract

本发明公开了一种融合全局和局部特征的智能合约相似性检测方法,其借助合约函数块提取工具提取字节码函数块,使用SimHash算法编码函数块为特征向量,利用海明距离算法计算得出函数块的相似性矩阵,从而得出局部相似值;然后通过对智能合约增加控制流和数据流分析来提取合约的程序依赖图,再使用基于Graph2vec算法的图嵌入模型编码器将程序依赖图编码为特征向量,以此特征向量为相似度计算函数的输入得到合约的全局相似值,最后利用全局和局部的特征融合计算得出合约的相似性结果。本发明融合全局和局部特征的方法考虑到了多维的合约代码特征,实现了更准确的检测效果,具有良好的通用性和实用价值。

Description

一种融合全局和局部特征的智能合约相似性检测方法
技术领域
本发明属于程序相似性检测技术领域,具体涉及一种融合全局和局部特征的智能合约相似性检测方法。
背景技术
当前,各类软件产品正面临更新迭代周期短、速度快的现状,为了满足产品快速更新的需求,开发人员往往会通过复用现有的程序代码实现软件功能。代码复用在一定程度上解决了产品上线的燃眉之急,有效地提升了产品更新的效率,然而盲目的代码复用也衍生出很多问题。一方面,如果复用的代码存在安全漏洞,而开发人员没有进行安全性验证就直接复用它,这可能会导致漏洞的继承,那么复用这段代码的其他程序软件也会存在安全漏洞的隐患;另一方面,代码复用还存在侵犯他人知识产权的风险。
代码相似性检测的目标是判断两段代码是否相似,根据代码不同程度的复用情况,代码相似性检测可以被分为四种类型:(1)完全相同的代码片段;(2)语法相同的代码片段,但标识符名称和变量名称存在差异;(3)复用后略有修改的代码片段;(4)功能等价但具体实现不同的代码片段。前三种类型属于代码语法相似,检测较易;而第四种属于代码语义相似,检测较难。近四十年来,面对代码复用带来的问题,研究人员设计了许多代码克隆检测工具,在各类程序代码的相似性检测中取得了不错的效果;从早期的基于属性计数和基于结构表示的方法到现今的基于无监督聚类和基于深度学习模型训练的方法,代码相似性检测技术在不断地改进,各类检测工具的性能和效率也在逐步提升。
近年来,区块链智能合约快速发展,已经广泛应用于各种分布式产品中;智能合约本质上是一段程序代码,能够部署并在区块链上运行,具有公开透明的特性。由于智能合约操纵着价值上亿的数字货币,越来越多的攻击者试图挖掘智能合约源码中的漏洞来窃取利益;当前的智能合约代码复用现象越来越多,许多合约开发者复用已有的合约代码来实现相应的功能。然而,如果一个合约存在安全漏洞,可能会导致复用其代码的合约也存在漏洞隐患,这种合约代码复用的现象已经导致了重大的经济损失,严重地危害区块链的可信执行环境。针对智能合约代码复用的情况,研究人员探索将智能合约源节码提取为控制流图或抽象语法树来实现相似性检测。然而,由于智能合约源代码存在数量较少、语义级别代码克隆检测难等问题;同时,智能合约字节码中存在的许多噪声代码也对检测结果有影响。因此,亟需一种有效的智能合约相似性检测方法来检测智能合约的克隆情况,避免智能合约漏洞的扩散传播。
经调研检索发现,公开号为CN113312268A的中国专利申请提供了一种智能合约代码相似检测方法,该方法将智能合约源代码进行AST的提取,然后分析AST中变量序列和变量的关系,构造合约语义图;但是由于智能合约源代码的数量较少,在语义级别代码克隆检测较难等问题使得检测结果受到部分影响。文献[Han Liu,Zhiqiang Yang,Yu Jiang,Wenqi Zhao,Jiaguang Sun:Enabling clone detection for ethereum via smartcontract birthmarks.ICPC 2019∶105-115]中提出通过为智能合约字节码构造CFG,再以符号方式执行CFG,动态化优化CFG,最后使用动态化后的CFG来进行相似性计算;虽然该技术方案解决了源代码数量少的问题,但是提取出的CFG中仍然缺乏数据流信息,并且CFG中只包含代码块之间的控制流,不包含代码块内的语法结构,想在语法检测方面得出相似性结果较难。
发明内容
鉴于上述,本发明提供了一种融合全局和局部特征的智能合约相似性检测方法,能够实现智能合约语义层面的代码相似性检测。
一种融合全局和局部特征的智能合约相似性检测方法,包括如下步骤:
(1)对待检测的两组智能合约的字节码进行预处理,以提取出函数块;
(2)对两组智能合约的函数块进行特征提取;
(3)根据提取得到的特征对两组智能合约的函数进行相似性分析,得到局部特征相似度;
(4)对两组智能合约构建合约程序依赖图,并提取图特征:
(5)根据提取得到的图特征对两组智能合约的程序依赖图进行相似性分析,得到全局特征相似度;
(6)对局部和全局特征相似度进行融合,最终输出两组智能合约的相似性结果。
进一步地,所述步骤(1)的具体实现方式为:对于待检测的智能合约,裁剪掉其中与合约语义无关的信息,只保留字节码中的运行时代码部分,然后利用合约函数块提取工具从这部分字节码中提取出函数块,所述函数块包含了从函数签名跳转到的函数入口位置到函数结束位置部分的代码。
进一步地,所述步骤(2)的具体实现方式为:首先对待检测的两组智能合约C1和C2的函数块进行序列化表示,分别得到F1={f1∈F1|f1,f2,...,fm}和F2={v1∈F2|v1,v2,...,vn},m和n分别表示从智能合约C1和C2中提取到的函数块个数,然后利用SimHash算法将两个函数序列F1和F2编码成特征向量,得到智能合约C1和C2的函数特征向量矩阵G1 m×p={t1,t2,...,tm}和G2 n×p={s1,s2,...,sn},其中p表示特征向量的维度。
进一步地,所述步骤(3)的具体实现方式为:对于两组智能合约C1和C2的函数特征向量矩阵G1 m×p和G2 n×p,首先利用海明距离计算G1 m×p与G2 n×p的相似性矩阵Sm×n,Sm×n中第i行第j列元素值即表示智能合约C1中第i个函数块与智能合约C2中第j个函数块的相似值;然后设定一个阈值k1,将Sm×n中低于或等于k1的元素值保持不变,高于k1的元素值置零,最后计算Sm×n中所有非零元素的平均值,即作为智能合约C1与C2的局部特征相似度值W1
进一步地,所述步骤(4)的具体实现方式为:对于待检测的智能合约C1和C2,首先通过分析合约中函数之间的调用关系以及合约的数据流和控制流依赖关系,增加数据流边和控制流边,以得到智能合约C1和C2的程序依赖图A1和A2;然后采用基于Graph2vec算法的图嵌入模型编码器将程序依赖图A1和A2映射为图特征向量D1和D2
进一步地,所述步骤(5)的具体实现方式为:对于两组智能合约C1和C2的图特征向量D1和D2,计算出两者的欧式距离即作为智能合约C1与C2的全局特征相似度值W2
进一步地,所述步骤(6)的具体实现方式为:首先对局部特征相似度值W1和全局特征相似度值W2进行加权求和,得到融合特征的相似度值W3,即W3=h1×W1+h2×W2;然后再进行一次加权求和即W=g1×W1+g2×W2+g3×W3,得到的相似度值W即作为待检测的两组智能合约的相似性结果;其中h1、h2以及g1、g2、g3为给定的权重系数。
本发明通过从智能合约字节码出发,局部方面通过预处理解决字节码噪声问题,全局方面则通过增加合约的数据流和控制流信息边来构造合约程序依赖图,做到全局检测合约相似性;最后通过融合全局和局部特征,来进行智能合约的相似性的检测。因此,本发明能够有效地检测智能合约的代码复用问题,相较于传统的代码克隆检测方法,融合全局和局部特征的方法考虑到了多维的合约代码特征,实现了更准确的检测效果,具有良好的通用性和实用价值,其有益技术效果和创新性,主要表现在以下三个方面:
1.本发明提出的智能合约字节码提取函数块特征的方法,通过提取待检测合约的函数块,并对函数块进行序列化处理,接着使用哈希算法将其编码为函数块特征,实现局部层面的相似性检测。
2.本发明提出的智能合约字节码提取程序依赖图特征的方法,通过对合约进行数据流和控制流分析,增加相应的控制流和数据流边,接着利用基于Graph2vec算法的图嵌入模型编码器将其编码为程序依赖图特征,实现全局层面的相似性检测。
3.本发明提出的根据局部相似值、全局相似值以及融合特征相似值,给出智能合约代码克隆的最终结果,具有很好的拓展性与借鉴意义。
附图说明
图1为本发明智能合约相似性检测方法的流程示意图。
图2为本发明智能合约字节码预处理以及函数块提取的示意图。
图3为本发明智能合约程序依赖图提取的流程示意图。
图4为本发明具体实例检测智能合约相似度的仿真过程示意图。
具体实施方式
为了更为具体地描述本发明,下面结合附图及具体实施方式对本发明的技术方案进行详细说明。
如图1所示,本发明融合全局和局部特征的智能合约相似性检测方法,包括如下步骤:
(1)合约字节码预处理,提取函数块;针对待检测的智能合约C1和C2进行预处理,裁剪一些与合约语义无关的信息(包括合约编译版本信息、区块号等),并从字节码中提取出函数块。
首先,智能合约字节码被分为三部分,分别为创建代码、运行时代码和Swarm代码,其中创建代码由运行时代码的副本和合约的初始状态组成,Swarm代码包括合约编译版本信息以及所涉及的区块号等信息,这些都是与智能合约计算相似性无关的内容。因此,裁剪智能合约字节码,只保留运行时代码部分来计算相似性。
然后,利用合约函数块提取工具从字节码中提取出函数块,一个函数块具体包含从函数签名跳转到的函数入口位置到函数结束位置部分的代码。
(2)函数块特征提取。
首先,对由步骤(1)得到的函数块序列化提取为函数块流F1={f1∈F1|f1,f2,...,fm}和F2={v1∈F2|v1,v2,...,vn},其中m,n分别表示从合约C1和C2中提取的函数个数。
然后,利用SimHash算法将每个函数序列化流编码为代表其语义和语法的特征向量;SimHash算法得到的编码向量不是唯一的,对于相似的函数序列化流得到的编码向量会很相近,最终编码得到合约C1和C2中每个函数的特征向量ti和sj,构成函数块特征集合G1 m×p={t1,t2,...,tm}和G2 n×p={s1,s2,...,sn},其中p代表特征向量的维度。
(3)函数块相似性分析。
针对合约C1和C2所有函数块的特征向量G1 m×p={t1,t2,...,tm}和G2 n×p={s1,s2,...,sn},通过海明距离对函数块进行两两相似性检测,得到它们的相似性矩阵Sm×n;海明距离是将两个位串进行异或运算,并计算出异或运算结果中1的个数,即结果是相同位置不同的个数,从而得到ti和sj的相似值sij,sij是函数相似度矩阵Sm×n中第i行第j列的元素值,代表的是G1中的第i个函数块与G2中的第j个函数块的相似度。
然后,设定函数相似性阈值k1用于将函数相似度矩阵中相似值偏低的元素进行处理并使其不参与相似性结果的计算,将函数相似度矩阵Sm×n中低于或等于k1的值保留,高于k1的值置零,并计算所有非零元素的平均值,得到两个合约在函数层面的相似值W1
(4)构建合约程序依赖图,提取图特征。
首先,通过分析智能合约中函数之间的调用关系以及合约的数据流和控制流依赖关系,同时增加数据流、控制流的信息,对根据合约控制流构建的基本块进行加数据边操作,得到合约的程序依赖图。
然后,构建基于Graph2vec算法的图嵌入模型编码器(该模型可以根据输入的图数据,得到高度概括图特征的向量表示),将合约C1和C2的程序依赖图A1和A2映射为特征向量D1和D2
(5)程序依赖图相似性分析;根据欧式距离,计算出两个程序依赖图向量D1和D2的相似值W2。欧式距离公式如下:
Figure BDA0003890291120000061
(6)融合全局和局部特征,输出合约相似性结果。
首先,由步骤(3)得到合约C1和C2的函数块相似性值W1和步骤(5)得到C1和C2的程序依赖图相似性值W2,通过融合全局和局部特征,得到相似值W3=h1×W1+h2×W2,其中h1和h2是使预测结果和实际结果误差最小的最佳参数。
进而,根据局部相似值、全局相似值以及融合特征的相似值,得出两个合约的相似性分数值W=g1×W1+g2×W2+g3×W3,其中g1,g2,g3都是使得误差最小的最佳参数。
本发明融合全局和局部特征的智能合约字节码相似性进行检测,其借助合约函数块提取工具提取字节码函数块,使用SimHash算法编码函数块为特征向量,利用海明距离算法计算得出函数块的相似性矩阵,从而得出局部相似值;然后通过对智能合约增加控制流和数据流分析来提取合约的程序依赖图,再使用基于Graph2vec算法的图嵌入模型编码器将程序依赖图编码为特征向量,以此特征向量为相似度计算函数的输入得到合约的全局相似值,最后利用全局和局部的特征融合计算得出合约的相似性结果。
如图2所示,本发明将智能合约字节码提取出函数块的方法可概括为:字节码由创建时代码、运行时代码、Swarm代码组成,而创建时代码和Swarm代码保存的是合约编译版本,区块号等与计算相似性无关的信息,所以先做数据处理操作,利用这些代码的标识进行剪裁,然后将字节码反编译成反编译码,对反编译码进行一个提取函数块的操作:具体可分为分析函数入口,抽离函数代码步骤,最终得到合约的反编译函数块。
如图3所示,本发明通过对智能合约增加数据流,控制流分析构造的程序依赖图,程序依赖图中的一个节点就是一个基本块,控制流信息从基本块中的第一条指令进入基本块,然后通过基本块的最后一个指令流出到下一个基本块,基本块间通过箭头连接,也代表了控制流向信息。但是图中缺乏数据流信息,所以本发明还引入数据流信息来增强合约的语义信息,首先我们对智能合约的数据进行分类,将其分为以下四类数据:①以calldataload,caller,callvalue为标志的用户调用数据;②以blockhash为标志的区块数据;③以sload为标志的内部存储数据;④以call为标志的外部调用数据。然后通过遍历字节码的反编译码,将这些数据分别做上标记,如果基本块1中存在calldataload数据,经过基本块的数据分析得到下一个要跳转的基本块为2,则在基础块1和2之间增加一条数据流边,表示calldataload数据经过基本块1到达基本块2;接下去就以此类推,最终得到包含四种数据流信息和控制流信息的程序依赖图。
以下我们以图4所示的智能合约相似性检测为例,具体检测流程如下:
(1)首先,将字节码进行数据预处理,然后利用合约函数块提取工具分别将智能合约字节码C1和C2抽取的函数块集合为F1和F2
(2)然后,将F1和F2进行序列化得到序列化集合F1={f1∈F1|f1,f2,...,fm}和F2={v1∈F2|v1,v2,...,vn}。本实例中,合约C1和C2分别含有2个函数块和3个函数块,故序列化集合中F1有2个元素,F2有3个元素,其具体实施方案如图2所示;
(3)通过使用SimHash算法对序列化后的函数块集合进行编码生成F1和F2中每个函数块fi、vj对应的特征向量,进一步得到函数块序列F1的特征向量集合
Figure BDA0003890291120000081
和函数块序列F2的特征向量集合
Figure BDA0003890291120000082
(本实例中所有特征向量的维度为64)。然后将
Figure BDA0003890291120000083
中向量ti
Figure BDA0003890291120000084
中向量sj输入到相似性计算函数,得到ti和sj的相似值sij,从而得到函数块相似度矩阵S2×3;设定阈值k1,通过元素值比较的方法过滤S2×3中元素值高于k1的元素,然后求此函数块相似性矩阵的平均值得到结果,具体实施方案如下:
3.1利用海明距离计算公式计算
Figure BDA0003890291120000085
Figure BDA0003890291120000086
中函数块特征向量之间的相似度,最终得到函数块相似度矩阵S2×3,矩阵第i行第j列元素值即函数块集合F1中第i个函数块和F2中第j个函数块的相似值。
3.2通常对于64维的向量,海明距离得出结果在3以内则表明这两个向量相似;故设定阈值k1=3,将S2×3中元素值低于或等于阈值k1的元素保留,高于阈值k1的元素置零。
3.3求得合约相似度矩阵S2×3中非零元素的平均值,得到智能合约C1和C2在函数层面的相似值W1
(4)接下来进行构建合约的程序依赖图A1和A2并提取图特征,通过对反编译码指令以及其中的跳转指令进行分析,得到以基本块1,2,3…等为单位的含有控制流信息的程序依赖图。然后通过分析数据流向,向其中基本块间加入数据流边,基本块1---calldataload--->基本块2,代表基本块1中的有关用户调用的数据流向了基本块2中。后面的类似,从而得到了合约C1和C2包含控制流和数据流信息的程序依赖图A1和A2;然后利用基于graph2vec算法的图嵌入模型编码器将A1和A2编码成特征向量D1和D2,具体通过捕捉图的拓扑结构、顶点与顶点的关系、子图、连边等信息,使得在向量空间中保持连接的节点彼此靠近,得到嵌入向量的过程包括:(1)采样并重新标记图中所有的子图,子图是出现在所选节点周围的一组节点和边;(2)训练模型,最大程度地预测输入中存在于图中的子图的概率;(3)计算嵌入向量。
(5)利用向量的欧式距离得出两个合约在合约层面的相似值W2
(6)利用步骤(3)得到两个合约局部分析的相似值W1和步骤(5)得到两个合约全局分析的相似值W2,通过融合全局和局部特征,得到相似值W3=h1×W1+h2×W2,其中h1和h2是使预测结果和实际结果误差最小的最佳参数。进而根据局部相似值、全局相似值以及融合特征的相似值,得出两个合约的相似性分数值W=g1×W1+g2×W2+g3×W3,其中g1,g2,g3都是使得误差最小的最佳参数。
上述对实例的描述是为便于本技术领域的普通技术人员能理解和应用本发明。熟悉本领域技术的人员显然可以容易地对上述实施例做出各种修改,并把在此说明的一般原理应用到其他实施例中而不必经过创造性的劳动。因此,本发明不限于上述实施例,本领域技术人员根据本发明的揭示,对于本发明做出的改进和修改都应该在本发明的保护范围之内。

Claims (8)

1.一种融合全局和局部特征的智能合约相似性检测方法,包括如下步骤:
(1)对待检测的两组智能合约的字节码进行预处理,以提取出函数块;
(2)对两组智能合约的函数块进行特征提取;
(3)根据提取得到的特征对两组智能合约的函数进行相似性分析,得到局部特征相似度;
(4)对两组智能合约构建合约程序依赖图,并提取图特征:
(5)根据提取得到的图特征对两组智能合约的程序依赖图进行相似性分析,得到全局特征相似度;
(6)对局部和全局特征相似度进行融合,最终输出两组智能合约的相似性结果。
2.根据权利要求1所述的智能合约相似性检测方法,其特征在于:所述步骤(1)的具体实现方式为:对于待检测的智能合约,裁剪掉其中与合约语义无关的信息,只保留字节码中的运行时代码部分,然后利用合约函数块提取工具从这部分字节码中提取出函数块,所述函数块包含了从函数签名跳转到的函数入口位置到函数结束位置部分的代码。
3.根据权利要求1所述的智能合约相似性检测方法,其特征在于:所述步骤(2)的具体实现方式为:首先对待检测的两组智能合约C1和C2的函数块进行序列化表示,分别得到F1={f1∈F1|f1,f2,…,fm}和F2={v1∈F2|v1,v2,…,vn},m和n分别表示从智能合约C1和C2中提取到的函数块个数,然后利用SimHash算法将两个函数序列F1和F2编码成特征向量,得到智能合约C1和C2的函数特征向量矩阵G1 m×p={t1,t2,…,tm}和G2 n×p={s1,s2,…,sn},其中p表示特征向量的维度。
4.根据权利要求1所述的智能合约相似性检测方法,其特征在于:所述步骤(3)的具体实现方式为:对于两组智能合约C1和C2的函数特征向量矩阵G1 m×p和G2 n×p,首先利用海明距离计算G1 m×p与G2 n×p的相似性矩阵Sm×n,Sm×n中第i行第j列元素值即表示智能合约C1中第i个函数块与智能合约C2中第j个函数块的相似值;然后设定一个阈值k1,将Sm×n中低于或等于k1的元素值保持不变,高于k1的元素值置零,最后计算Sm×n中所有非零元素的平均值,即作为智能合约C1与C2的局部特征相似度值W1
5.根据权利要求1所述的智能合约相似性检测方法,其特征在于:所述步骤(4)的具体实现方式为:对于待检测的智能合约C1和C2,首先通过分析合约中函数之间的调用关系以及合约的数据流和控制流依赖关系,增加数据流边和控制流边,以得到智能合约C1和C2的程序依赖图A1和A2;然后采用基于Graph2vec算法的图嵌入模型编码器将程序依赖图A1和A2映射为图特征向量D1和D2
6.根据权利要求1所述的智能合约相似性检测方法,其特征在于:所述步骤(5)的具体实现方式为:对于两组智能合约C1和C2的图特征向量D1和D2,计算出两者的欧式距离即作为智能合约C1与C2的全局特征相似度值W2
7.根据权利要求1所述的智能合约相似性检测方法,其特征在于:所述步骤(6)的具体实现方式为:首先对局部特征相似度值W1和全局特征相似度值W2进行加权求和,得到融合特征的相似度值W3,即W3=h1×W1+h2×W2;然后再进行一次加权求和即W=g1×W1+g2×W2+g3×W3,得到的相似度值W即作为待检测的两组智能合约的相似性结果;其中h1、h2以及g1、g2、g3为给定的权重系数。
8.根据权利要求1所述的智能合约相似性检测方法,其特征在于:该检测方法通过从智能合约字节码出发,局部方面通过预处理解决字节码噪声问题,全局方面则通过增加合约的数据流和控制流信息边来构造合约程序依赖图,做到全局检测合约相似性;最后通过融合全局和局部特征,来进行智能合约的相似性的检测。
CN202211262995.XA 2022-10-14 2022-10-14 一种融合全局和局部特征的智能合约相似性检测方法 Pending CN115617395A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211262995.XA CN115617395A (zh) 2022-10-14 2022-10-14 一种融合全局和局部特征的智能合约相似性检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211262995.XA CN115617395A (zh) 2022-10-14 2022-10-14 一种融合全局和局部特征的智能合约相似性检测方法

Publications (1)

Publication Number Publication Date
CN115617395A true CN115617395A (zh) 2023-01-17

Family

ID=84862544

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211262995.XA Pending CN115617395A (zh) 2022-10-14 2022-10-14 一种融合全局和局部特征的智能合约相似性检测方法

Country Status (1)

Country Link
CN (1) CN115617395A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115906104A (zh) * 2023-02-23 2023-04-04 国网山东省电力公司泰安供电公司 一种二次封装后开源组件的安全检测方法及装置
CN117170677A (zh) * 2023-09-01 2023-12-05 佛山市康颐福城市服务科技有限公司 智能合约的相似性检测方法、装置、设备和可读存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115906104A (zh) * 2023-02-23 2023-04-04 国网山东省电力公司泰安供电公司 一种二次封装后开源组件的安全检测方法及装置
CN117170677A (zh) * 2023-09-01 2023-12-05 佛山市康颐福城市服务科技有限公司 智能合约的相似性检测方法、装置、设备和可读存储介质

Similar Documents

Publication Publication Date Title
CN112733137B (zh) 一种面向漏洞检测的二进制代码相似性分析方法
CN111125716B (zh) 一种以太坊智能合约漏洞检测方法及装置
CN115617395A (zh) 一种融合全局和局部特征的智能合约相似性检测方法
CN107229563B (zh) 一种跨架构的二进制程序漏洞函数关联方法
CN108491228B (zh) 一种二进制漏洞代码克隆检测方法及系统
CN113010209A (zh) 一种抗编译差异的二进制代码相似性比较技术
CN113297580B (zh) 基于代码语义分析的电力信息系统安全防护方法及装置
CN115146279A (zh) 程序漏洞检测方法、终端设备及存储介质
Meng et al. A deep learning approach for a source code detection model using self-attention
CN111045670B (zh) 一种二进制代码与源代码间复用关系的识别方法与装置
CN115033890A (zh) 一种基于对比学习的源代码漏洞检测方法及系统
CN116340952A (zh) 一种基于操作码程序依赖图的智能合约漏洞检测方法
CN113177107B (zh) 一种基于句法树匹配的智能合约相似性检测方法
CN108733359B (zh) 一种软件程序的自动生成方法
Li et al. Semantic code clone detection via event embedding tree and GAT network
Alon et al. Using graph neural networks for program termination
CN116702157B (zh) 一种基于神经网络的智能合约漏洞检测方法
Saks et al. Explicit OR-dispersers with polylogarithmic degree
CN116663018A (zh) 一种基于代码可执行路径的漏洞检测方法及装置
CN116975881A (zh) 一种基于llvm的漏洞细粒度定位方法
CN113868650B (zh) 基于代码异质中间图表示的漏洞检测方法与装置
CN114780103B (zh) 一种基于图匹配网络的语义类代码克隆检测方法
CN116662991A (zh) 基于人工智能的智能合约意图检测方法
CN113076089B (zh) 一种基于对象类型的api补全方法
CN116628695A (zh) 基于多任务学习的漏洞挖掘方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination