-
公开(公告)号:CN119180036A
公开(公告)日:2024-12-24
申请号:CN202411247118.4
申请日:2024-09-06
Applicant: 南京工业大学
Abstract: 本发明提出一种基于跨合约重入语义图的重入漏洞智能检测方法。该方法首先对智能合约进行程序分析,得到每个合约的语义图,分析调用合约与被调用合约之间调用关系,通过添加合约之间的函数调用控制流、函数参数传递的数据流、函数返回值数据流和基于fallback机制的控制流,得到跨合约语义图;然后,针对引发重入漏洞的fallback机制,针对重入漏洞的关键节点进行双向约简,通过去除与重入漏洞无关的节点得到跨合约重入语义图;最后,对跨合约重入语义图矢量化,输入到序列模型提取特征,实现重入漏洞智能检测。通过分析合约之间调用关系和基于fallback机制进行双向约简,并且使用序列模型能够提取语义特征,从而有效提高了重入漏洞的检测效率。
-
公开(公告)号:CN119201702A
公开(公告)日:2024-12-27
申请号:CN202411243514.X
申请日:2024-09-05
Applicant: 南京工业大学
IPC: G06F11/36
Abstract: 本发明提出一种面向交易顺序依赖Root Cause的智能合约Flaky修复及验证方法。首先通过静态数据依赖分析,精准识别出与共享合约状态变量setter函数紧密相关的Root Cause。接着,以setter函数作为目标,在setter函数中嵌入保护语句,即锁,以确保合约在修改状态变量之前进行状态检查。最后,将修改后的合约作为测试对象,将对状态变量具有写操作的语句作为关键节点,并将包含这些节点的执行路径定义为关键路径。以这些关键路径为测试目标,我们进行反复测试,观察合约在不同状态下的表现,从而验证修复补丁的有效性。本发明的目的在于提升智能合约的可靠性,增强测试结果的稳定性,优化开发流程,并促进区块链技术的健康发展,确保智能合约安全。
-
公开(公告)号:CN118193367A
公开(公告)日:2024-06-14
申请号:CN202410268818.5
申请日:2024-03-08
Applicant: 南京工业大学
IPC: G06F11/36
Abstract: 本发明提出一种以关键路径为导向的智能合约Flaky Test Root Cause定位方法。该方法首先对智能合约进行数据流分析,得到可能受到区块链状态影响的节点和执行路径,称为关键节点和关键路径;然后,以关键路径作为覆盖目标,采用演化模糊测试技术,生成一系列交易序列作为测试输入,并对生成的交易序列进行积极重跑。在此基础上,针对重跑产生的Flaky Test,应用Root Cause检测器动态检测Flaky Test的Root Cause。设计了三种类型Root Cause检测器,分别用于检测交易顺序依赖、区块链属性依赖以及并发依赖导致的Root Cause。最终,输出待测合约的Flaky Test及Root Cause位置和类型。本发明的目的在于减轻Flaky Test对测试结果的影响,给予测试人员及时的提醒,降低智能合约测试以及后续的维护成本。
-
-