CN113688403A - 一种基于符号执行验证的智能合约漏洞检测方法及装置 - Google Patents
一种基于符号执行验证的智能合约漏洞检测方法及装置 Download PDFInfo
- Publication number
- CN113688403A CN113688403A CN202111243944.8A CN202111243944A CN113688403A CN 113688403 A CN113688403 A CN 113688403A CN 202111243944 A CN202111243944 A CN 202111243944A CN 113688403 A CN113688403 A CN 113688403A
- Authority
- CN
- China
- Prior art keywords
- path
- execution
- verification
- executed
- intelligent contract
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种基于符号执行验证的智能合约漏洞检测方法及装置,包括获取输入初始值,所述输入初始值包括符号值以及与所述符号值对应的、用于简化约束条件的实际值;根据所述初始值或者经过路径反求后的结果选择将要执行的路径并执行;当当前路径执行到叶子节点时停止,根据执行结果生成所述当前路径的约束条件;将约束条件反求得到路径反求后的结果,所述结果对应下一个要执行的新路径;当满足第一预设规则后,停止路径执行并生成包括所有执行路径的执行树;基于所述执行树完成智能合约属性验证,得到验证结果。本申请通过符号执行的方法对待检测程序完成程序属性验证的工作,从而实现对代码漏洞的精确检测。
Description
技术领域
本申请涉及智能合约技术领域,尤其涉及一种基于符号执行验证的智能合约漏洞检测方法及装置。
背景技术
智能合约设计的初衷在于能够自动、高效与公平地执行区块链上的每一笔交易,在区块链的日常活动中,智能合约扮演着较为重要的角色。随着区块链的应用场景日益丰富、功能不断完善,智能合约的安全问题逐渐凸显,智能合约的安全即为区块链项目的命脉,因此智能合约的安全漏洞检测工作尤为重要。
现有技术中,对于智能合约漏洞检测技术主要包括符号执行、模糊测试、形式化验证、程序分析技术及污点分析等手段。其中,符号执行相比于其他技术更适用于对程序进行精确全面的分析。符号执行的主要思想为:把程序执行中的不确定的输入值转换为符号值,从而推动程序执行分析、完成属性验证等工作,保证了检测结果具有较好的真实性与可靠性。
目前常用的用于检测智能合约漏洞的装置有Oyente,Oyente以智能合约字节码作为输入,包含四个核心组件:控制流图生成器 (CFG Builder)、探索器 (Explorer)、分析器(Core Analysis)和验证器(Validator)。控制流图生成器对合约进行预分析,为合约构建基本的控制流图,以基本块为节点,跳转关系为边。然而部分跳转关系并不能由控制流图生成器完全确定。因此,探索器会对智能合约进行符号执行,并在执行过程中将这些信息补齐。探索器承担着收集合约信息的重要责任,它本质上是一个循环,依次执行合约控制流图中各个基本块的代码。它利用Z3求解器对合约中的条件跳转进行求解,探索器根据求解结果决定对哪个分支进行分析,当条件跳转的两个分支条件都有解时, 两个分支都会被探索。分析器是 Oyente 的另一个重要组件,用于根据探索器收集的信息,识别合约漏洞。验证器,用于过滤分析器所产生的误报。
然而,Oyente 仅是一个字节码层面的合约漏洞挖掘工具,在符号执行的过程中对程序控制流图进行动态探索,并通过路径约束、变量来源等信息对合约漏洞进行检测。但是,Oyente的部分检测方案并不完善,在实际的智能合约检测工作中会报出大量假阳性误报,涉及的漏洞也不够全面,仅实现了条件竞争、时间戳依赖、未校验返回值以及重入漏洞四种合约漏洞的检测方案。同时,该工具也缺乏相关开发人员的维护与更新,已不能满足目前智能合约发展对安全漏洞检测的需求工作。
发明内容
本申请提供了一种基于符号执行验证的智能合约漏洞检测方法及装置,以解决现有技术中执行智能合约漏洞检测时精度低、准确度低等问题。
第一方面,本申请提供了一种基于符号执行验证的智能合约漏洞检测方法,所述方法包括:
获取输入初始值,所述输入初始值包括符号值以及与所述符号值对应的、用于简化约束条件的实际值;
根据所述初始值或者经过路径反求后的结果选择将要执行的路径并执行;
当当前路径执行到叶子节点时停止,根据执行结果生成所述当前路径的约束条件;
将约束条件反求得到路径反求后的结果,所述结果对应下一个要执行的新路径;
当满足第一预设规则后,停止路径执行并生成包括所有执行路径的执行树;
基于所述执行树完成智能合约属性验证,得到验证结果。
在一些实施例中,所述第一预设规则包括:
记录输入初始值的时间,当路径执行的总时长达到第一预设时长,停止路径执行。
在一些实施例中,所述第一预设规则包括:
当满足属性验证的路径被执行或达到结束探索条件时,停止路径执行。
在一些实施例中,所述将约束条件反求得到路径反求后的结果的步骤包括:
查找当前路径中的路径分支节点;
将叶子节点的上一级路径分支节点求反,生成新的路径。
在一些实施例中,执行新的路径前,所述方法还包括:
判断新的路径是否已被执行;
若是,则将当前路径分支节点的上一级路径分支节点求反,将生成的新的路径作为将要执行的新的路径。
第二方面,本申请还提供了一种对应于第一方面所述方法的基于符号执行验证的智能合约漏洞检测装置,包括:
获取单元,被配置为获取输入初始值,所述输入初始值包括符号值以及与所述符号值对应的、用于简化约束条件的实际值;
路径选择单元,被配置为根据所述初始值或者经过路径反求后的结果选择将要执行的路径并执行;
约束求解单元,被配置为当当前路径执行到叶子节点时停止时,根据执行结果生成所述当前路径的约束条件;以及将约束条件反求得到路径反求后的结果,所述结果对应下一个要执行的新路径;
分析单元,被配置为当满足第一预设规则后,停止路径执行并生成包括所有执行路径的执行树;
验证单元,被配置为基于所述执行树完成智能合约属性验证,得到验证结果。
在一些实施例中,所述检测装置还包括:
计时单元,被配置为记录输入初始值的时间,当路径执行的总时长达到第一预设时长,停止路径执行。
在一些实施例中,所述分析单元还被配置为:
当满足属性验证的路径被执行或达到结束探索条件时,停止路径执行。
在一些实施例中,所述约束求解单元包括:
查找子单元,被配置为查找当前路径中的路径分支节点;
求反子单元,被配置为将叶子节点的上一级路径分支节点求反,生成新的路径。
在一些实施例中,所述约束求解单元还包括:
判断子单元,被配置为判断新的路径是否已被执行;
若是,则将当前路径分支节点的上一级路径分支节点求反,将生成的新的路径作为将要执行的新的路径。
本申请提供的方法和装置具有下列有益效果:
一、本申请的方案利用符号执行的方法对待检测程序完成程序属性验证的工作,从而实现对代码漏洞的检测;
二、本方案使用符号执行的思想来遍历程序的执行路径,从而生成检测程序的执行树,实现检测代码的全面覆盖;
三、本方案使用实际值执行与符号之执行相结合的方式进行约束求解,可以较好地避免路径***等问题。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请提供的一种基于符号执行验证的智能合约漏洞检测方法的流程图;
图2为一种举例下的符号执行树示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,为本申请提供的一种基于符号执行验证的智能合约漏洞检测方法的流程图;
由图1可知,本申请提供的方法包括:
步骤100:获取输入初始值,所述输入初始值包括符号值以及与所述符号值对应的、用于简化约束条件的实际值;
在本实施例中,输入的初始值可以由操作人员给定,也可以是由***随机生成,例如初始值可取0,1等。需要说明的是,虽然初始值包括一个符号值,但与现有技术不同是,本申请采用将实际值与符号值并行执行的方式进入到路径选择模块中,在后续路径约束反求过程进行遍历后根据约束的范围来确定实际值。
在本实施例中,符号值相当于一个或多个变量,在后续路径约束形成后可能会生成一个多变量的路径约束,可通过加入实际值来简化约束的求解,从而加速求解约束的速度和效率。对于实际值的选取范围,可根据约束的求解范围之内进行选择。
步骤200:根据所述初始值或者经过路径反求后的结果选择将要执行的路径并执行;
如果是第一次执行,则本步骤中需要根据初始输入的符号值来确定将要执行的路径,如果已经执行了某一路径,则需要将该路径反求后的结果作为确定即将要执行的路径;由于在执行路径选择时,起初是无法知道接下来有多少条路径的,仅能够知道在路径执行过程中,到达某一个路径分支节点时是否存在两条分支,因此,本申请中采取的方式是当遇到分支路径时,先执行其中一个分支,执行完毕后,再执行另一个分支,当该路径分支节点的两个分支均执行完毕后,可以在对上一级的分支进行求反,获取新的分支,这样,将会逐渐遍历所有可能的执行路径。
步骤300:当当前路径执行到叶子节点时停止,根据执行结果生成所述当前路径的约束条件;
其中,约束条件包括所经历的执行路径上分支节点条件的^运算,叶子节点是指某一个路径执行的终点,当路径执行到达叶子节点时,表明该路径执行完毕。
步骤400:将约束条件反求得到路径反求后的结果,所述结果对应下一个要执行的新路径;具体的,可将上一步骤中求得的路径约束条件输入到约束求解器中进行求解,输入该路径的实际值简化约束求解,从而避免路径***等问题。
上述步骤的求解过程可由图2所示的流程图进行说明:
图2示出的是一种简单举例下的符号执行树,所对应的代码可表述为:
int m=M, n=N, q=Q;
int x1=0,x2=0,x3=0;
if(m!=0)
{
x1=-2;
}
if(n<5)
{
if(!m && q)
{
x2=1;
}
x3=2;
}
assert(x1+x2+x3!=3)
由上述可知,例子中的输入是M,N,Q三个变量;输出是x1,x2,x3的三个变量的和的判断。这里设置的条件是想寻找输入向量M,N,Q的值,使得的三个输出变量的和等于3。
图2中把所有可能的情况都列举出来,叶子节点显示的数值表示当前输入情况下,可以得到的数值。(比如,如果输入的变量之间的关系是M^(N<12),那么最终的三个数之和R=0)。其中M^(N<12)表达的是,M是非零值且N要小于12,Q为任意值的情况下,得到三个数之和R=0。可以发现,当条件为~M^(N<5)^Q时,得到了最终结果等于3。通过这种方式逆向发现了输入向量。如果把结果条件更改为漏洞条件,理论上就能够进行漏洞挖掘。
上例中,反求的过程可具体细化为:
步骤401:查找当前路径中的路径分支节点;
步骤402:将叶子节点的上一级路径分支节点求反,生成新的路径;
举例为:执行到M^(N<12)最左侧叶子节点时,将最近一级分支处的约束条件(N<12)求反得到新的约束条件M^(N>=12),可见,通过反求可以逐渐遍历出各种可能的执行路径,以便于更快或者更全面地找出可行路径或最优路径等。
当一个路径分支节点下的所有分支路径均执行完毕后,需要再从上一级路径分支节点查找未执行的路径执行,因此在一些实施例中,上述方法还包括:
步骤403:判断新的路径是否已被执行;
步骤404:若是,则将当前路径分支节点的上一级路径分支节点求反,将生成的新的路径作为将要执行的新的路径。
经过步骤200-400,使得程序将在约束求解--约束条件求反之间往复执行,直至满足一定要求时结束。具体的,采取下述步骤500来判定如何结束路径执行。
步骤500:当满足第一预设规则后,停止路径执行并生成包括所有执行路径的执行树;
具体的,在本实施例中,可以根据不同需要相应设置多种第一预设规则,例如,在一种可行性实施例中,所述第一预设规则包括:记录输入初始值的时间,当路径执行的总时长达到第一预设时长,停止路径执行,这样可以防止遍历耗费过长的时间,节约时间成本;在另一种可行性实施例中,所述第一预设规则包括:当满足属性验证的路径被执行或达到结束探索条件时,停止路径执行。第一预设规则还可以有其它适应性的设置,对此本申请中不予限定。
步骤600:基于所述执行树完成智能合约属性验证,得到验证结果。
在本实施例中,主要思想为使用给定的或随机生成的初始值来执行程序,但是输入仍然是一个符号值并形成路径约束,程序需要根据给定的或随机的初始值来选择合适的分支,并且在路径分支处收集与输入相关联的符号约束条件,最后根据设定的路径搜索算法,利用约束求解器对路径约束进行反求,从而得到一个新的输入。理论上来讲,新的输入值可以使程序沿着不同的路径执行。然后重复这个过程,直到程序路径被探索或达到结束探索条件,或在预定的测试时间过去之后。解决符号执行过程中约束过大或执行的深度过大造成路径***的问题,大大的节约了检测工作的时间成本及算力资源。
如果把结果条件更改为漏洞条件,通过逆向方式获得输入向量。通过约束求解器可得到结果,说明该路径是可达的,理论上是能够验证某条路径是否是可抵达的,从而验证代码的某些属性。在检测智能合约是否存在算法溢出,缺少零地址校验等等方面可靠性较强。
由上述技术方案可知,本申请提供了一种基于符号执行验证的智能合约漏洞检测方法,包括获取输入初始值,所述输入初始值包括符号值以及与所述符号值对应的、用于简化约束条件的实际值;根据所述初始值或者经过路径反求后的结果选择将要执行的路径并执行;当当前路径执行到叶子节点时停止,根据执行结果生成所述当前路径的约束条件;将约束条件反求得到路径反求后的结果,所述结果对应下一个要执行的新路径;当满足第一预设规则后,停止路径执行并生成包括所有执行路径的执行树;基于所述执行树完成智能合约属性验证,得到验证结果。本申请通过符号执行的方法对待检测程序完成程序属性验证的工作,从而实现对代码漏洞的精确检测。
对应于上述方法,本申请还提供了一种应用上述方法的装置,所述装置包括:
获取单元,被配置为获取输入初始值,所述输入初始值包括符号值以及与所述符号值对应的、用于简化约束条件的实际值;
路径选择单元,被配置为根据所述初始值或者经过路径反求后的结果选择将要执行的路径并执行;
约束求解单元,被配置为当当前路径执行到叶子节点时停止时,根据执行结果生成所述当前路径的约束条件;以及将约束条件反求得到路径反求后的结果,所述结果对应下一个要执行的新路径;
分析单元,被配置为当满足第一预设规则后,停止路径执行并生成包括所有执行路径的执行树;
验证单元,被配置为基于所述执行树完成智能合约属性验证,得到验证结果。
进一步的,所述检测装置还包括:
计时单元,被配置为记录输入初始值的时间,当路径执行的总时长达到第一预设时长,停止路径执行。
进一步的,所述分析单元还被配置为:
当满足属性验证的路径被执行或达到结束探索条件时,停止路径执行。
进一步的,所述约束求解单元包括:
查找子单元,被配置为查找当前路径中的路径分支节点;
求反子单元,被配置为将叶子节点的上一级路径分支节点求反,生成新的路径。
进一步的,所述约束求解单元还包括:
判断子单元,被配置为判断新的路径是否已被执行;
若是,则将当前路径分支节点的上一级路径分支节点求反,将生成的新的路径作为将要执行的新的路径。
本申请装置的功能参见上述方法实施例中的说明,在此不再赘述。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由本申请的权利要求指出。
Claims (10)
1.一种基于符号执行验证的智能合约漏洞检测方法,其特征在于,所述方法包括:
获取输入初始值,所述输入初始值包括符号值以及与所述符号值对应的、用于简化约束条件的实际值;
根据所述初始值或者经过路径反求后的结果选择将要执行的路径并执行;
当当前路径执行到叶子节点时停止,根据执行结果生成所述当前路径的约束条件;
将约束条件反求得到路径反求后的结果,所述结果对应下一个要执行的新路径;
当满足第一预设规则后,停止路径执行并生成包括所有执行路径的执行树;
基于所述执行树完成智能合约属性验证,得到验证结果。
2.根据权利要求1所述的一种基于符号执行验证的智能合约漏洞检测方法,其特征在于,所述第一预设规则包括:
记录输入初始值的时间,当路径执行的总时长达到第一预设时长,停止路径执行。
3.根据权利要求1所述的一种基于符号执行验证的智能合约漏洞检测方法,其特征在于,所述第一预设规则包括:
当满足属性验证的路径被执行或达到结束探索条件时,停止路径执行。
4.根据权利要求1所述的一种基于符号执行验证的智能合约漏洞检测方法,其特征在于,所述将约束条件反求得到路径反求后的结果的步骤包括:
查找当前路径中的路径分支节点;
将叶子节点的上一级路径分支节点求反,生成新的路径。
5.根据权利要求4所述的一种基于符号执行验证的智能合约漏洞检测方法,其特征在于,执行新的路径前,所述方法还包括:
判断新的路径是否已被执行;
若是,则将当前路径分支节点的上一级路径分支节点求反,将生成的新的路径作为将要执行的新的路径。
6.一种基于符号执行验证的智能合约漏洞检测装置,其特征在于,包括:
获取单元,被配置为获取输入初始值,所述输入初始值包括符号值以及与所述符号值对应的、用于简化约束条件的实际值;
路径选择单元,被配置为根据所述初始值或者经过路径反求后的结果选择将要执行的路径并执行;
约束求解单元,被配置为当当前路径执行到叶子节点时停止时,根据执行结果生成所述当前路径的约束条件;以及将约束条件反求得到路径反求后的结果,所述结果对应下一个要执行的新路径;
分析单元,被配置为当满足第一预设规则后,停止路径执行并生成包括所有执行路径的执行树;
验证单元,被配置为基于所述执行树完成智能合约属性验证,得到验证结果。
7.根据权利要求6所述的一种基于符号执行验证的智能合约漏洞检测装置,其特征在于,所述检测装置还包括:
计时单元,被配置为记录输入初始值的时间,当路径执行的总时长达到第一预设时长,停止路径执行。
8.根据权利要求6所述的一种基于符号执行验证的智能合约漏洞检测装置,其特征在于,所述分析单元还被配置为:
当满足属性验证的路径被执行或达到结束探索条件时,停止路径执行。
9.根据权利要求6所述的一种基于符号执行验证的智能合约漏洞检测装置,其特征在于,所述约束求解单元包括:
查找子单元,被配置为查找当前路径中的路径分支节点;
求反子单元,被配置为将叶子节点的上一级路径分支节点求反,生成新的路径。
10.根据权利要求9所述的一种基于符号执行验证的智能合约漏洞检测装置,其特征在于,所述约束求解单元还包括:
判断子单元,被配置为判断新的路径是否已被执行;
若是,则将当前路径分支节点的上一级路径分支节点求反,将生成的新的路径作为将要执行的新的路径。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111243944.8A CN113688403A (zh) | 2021-10-26 | 2021-10-26 | 一种基于符号执行验证的智能合约漏洞检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111243944.8A CN113688403A (zh) | 2021-10-26 | 2021-10-26 | 一种基于符号执行验证的智能合约漏洞检测方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113688403A true CN113688403A (zh) | 2021-11-23 |
Family
ID=78588041
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111243944.8A Pending CN113688403A (zh) | 2021-10-26 | 2021-10-26 | 一种基于符号执行验证的智能合约漏洞检测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113688403A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114510414A (zh) * | 2022-01-17 | 2022-05-17 | 北京大学 | 一种基于符号执行对智能合约功能属性进行形式化验证的方法及*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102708045A (zh) * | 2012-04-13 | 2012-10-03 | 电子科技大学 | 一种缓解路径***的动态符号执行方法 |
CN108021507A (zh) * | 2017-12-25 | 2018-05-11 | 首都师范大学 | 符号执行的并行路径搜索方法及装置 |
CN109002723A (zh) * | 2018-07-24 | 2018-12-14 | 北京理工大学 | 一种分段式符号执行方法 |
-
2021
- 2021-10-26 CN CN202111243944.8A patent/CN113688403A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102708045A (zh) * | 2012-04-13 | 2012-10-03 | 电子科技大学 | 一种缓解路径***的动态符号执行方法 |
CN108021507A (zh) * | 2017-12-25 | 2018-05-11 | 首都师范大学 | 符号执行的并行路径搜索方法及装置 |
CN109002723A (zh) * | 2018-07-24 | 2018-12-14 | 北京理工大学 | 一种分段式符号执行方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114510414A (zh) * | 2022-01-17 | 2022-05-17 | 北京大学 | 一种基于符号执行对智能合约功能属性进行形式化验证的方法及*** |
CN114510414B (zh) * | 2022-01-17 | 2024-05-17 | 北京大学 | 一种基于符号执行对智能合约功能属性进行形式化验证的方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101981028B1 (ko) | 바이너리 기반 보안 취약점 탐색 시스템, 그 방법 및 프로그램 | |
US7971193B2 (en) | Methods for performining cross module context-sensitive security analysis | |
US8312440B2 (en) | Method, computer program product, and hardware product for providing program individuality analysis for source code programs | |
CN111104335B (zh) | 一种基于多层次分析的c语言缺陷检测方法及装置 | |
CN104899147A (zh) | 一种面向安全检查的代码静态分析方法 | |
US20140053134A1 (en) | Software regression testing using symbolic execution | |
CN103116540A (zh) | 基于全局超级块支配图的动态符号执行方法及其装置 | |
US20110145799A1 (en) | Path-sensitive dataflow analysis including path refinement | |
CN108763064B (zh) | 一种基于黑盒函数与机器学习的代码测试生成方法和装置 | |
CN115659335A (zh) | 基于混合模糊测试的区块链智能合约漏洞检测方法及装置 | |
CN114911711A (zh) | 一种代码缺陷分析方法、装置、电子设备及存储介质 | |
JP2014021982A (ja) | オブジェクト指向言語のための記号テストドライバの反復生成 | |
KR101696694B1 (ko) | 역추적을 이용한 소스 코드 취약점 분석 방법 및 장치 | |
CN114138669A (zh) | 一种基于函数级选择符号化混合执行的软件自动测试方法 | |
CN113688403A (zh) | 一种基于符号执行验证的智能合约漏洞检测方法及装置 | |
CN112631925B (zh) | 一种单变量原子违背缺陷的检测方法 | |
CN116702157B (zh) | 一种基于神经网络的智能合约漏洞检测方法 | |
CN116383070B (zh) | 一种面向高mc/dc的符号执行方法 | |
CN109032946B (zh) | 一种测试方法和装置、计算机可读存储介质 | |
WO2019142266A1 (ja) | テストケース生成装置、テストケース生成方法およびテストケース生成プログラム | |
EP2820547B1 (en) | Debugging method and computer program product | |
CN114462043A (zh) | 基于强化学习的Java反序列化漏洞检测***及方法 | |
US20140053139A1 (en) | Symbolic testing of software using concrete software execution | |
WO2021104027A1 (zh) | 代码性能检测方法、装置、设备及存储介质 | |
CN112162932A (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 |