一种基于高阶函数的高效静态污点分析方法

    公开(公告)号:CN117093223A

    公开(公告)日:2023-11-21

    申请号:CN202311075050.1

    申请日:2023-08-24

    Abstract: 本发明公开了一种基于高阶函数的高效静态污点分析方法包括,采集数据并制定污点源、汇聚点及无害化处理的标记规则;将标记后的源程序转成中间表示语言IR,根据中间表示语言IR实际的调用关系构建函数调用图;根据获取的子过程分析顺序,构建程序P的高阶函数形式的函数摘要;利用构建的程序P的高阶函数形式的函数摘要,在过程调用点处对函数摘要的函数参数进行相应代入,获取由于过程调用和参数传递产生的依赖信息;获取污点标记处的依赖信息后,根据污点传播规则和无害化处理标记,对标注的污点源状态进行更新。本发明避免了传统构建依赖图的方法,提高了污点分析的效率,可以更高效的通过污点分析方法来检测软件中存在的漏洞问题。

    一种基于高阶函数的代码依恋检测方法及系统

    公开(公告)号:CN116974914A

    公开(公告)日:2023-10-31

    申请号:CN202310795809.7

    申请日:2023-06-30

    Abstract: 本发明涉及函数式编程和程序分析领域,公开了一种基于高阶函数的代码依恋检测方法包括,程序预处理,生成可以识别多态调用方法名的虚函数表,构造函数调用图;构建每个过程高阶函数形式的函数摘要;通过生成的高阶函数形式的函数摘要,调用点处对函数摘要的函数参数进行相应代入,获取过程间由于过程调用和参数传递产生的代码依恋值信息;将计算得到的依恋值信息进行汇总,获取每个类中的每个方法的依恋度量值,检测程序中是否存在代码依恋。本发明解决了当前检测方法很少考虑上下文函数调用关系,以及类是否被具体实例化的不足,提高代码依恋检测的精度及其在生产生活中的应用价值。

    一种用于代码溯源的程序水印嵌入和提取方法及系统

    公开(公告)号:CN116861378A

    公开(公告)日:2023-10-10

    申请号:CN202310718912.1

    申请日:2023-06-16

    Abstract: 本发明公开了一种用于代码溯源的程序水印嵌入和提取方法及系统,包括:由源代码构建函数调用图;按照逆拓扑排序遍历函数调用图,将存在调用关系的函数划分为一个代码块并对每一个代码块进行信息流分析得到代码块中的信息流关系;构建源程序的代码属性图;根据代码块中的信息流关系和代码属性图形成程序联合属性图;对程序联合属性图中变量节点的关系边数进行计算并选取关键节点;根据关键节点和用户身份信息嵌入水印;将关键节点作为依据进行双向程序切片,并根据水印提取规则提取水印。本发明不仅可减小水印损失的风险,还可加强水印与源代码间的依赖并提高隐蔽性,降低在静态分析中被发现的风险,无需依赖源代码也能提取到水印信息。

    一种基于循环不变式的间接跳转目标地址识别方法及装置

    公开(公告)号:CN115129320B

    公开(公告)日:2024-05-24

    申请号:CN202210686923.1

    申请日:2022-06-17

    Abstract: 本发明提供了一种基于循环不变式的间接跳转目标地址识别方法及装置。方法包括:将二进制程序解码成中间表示BRIL;根据BRIL语义和控制流结构计算循环不变式,并将其保存到分析树的结点中;深度优先遍历分析树,将循环不变式不断约简合并,生成约束表达式集;对约束表达式集求解,得到间接跳转目标地址;将目标地址处的语句作为分析入口,目标地址作为初始值,重新进行分析树的构建、约束表达式集的生成和求解,直到间接跳转目标地址不再发生变化(不动点)。本发明相比于传统数据流分析的方法,利用循环不变式来增加对地址数据的分析深度,并能够减少对循环结构的分析次数,从而提高间接跳转目标地址识别的准确度和效率。

    一种基于高阶函数的数据竞争检测方法

    公开(公告)号:CN115794592B

    公开(公告)日:2023-07-04

    申请号:CN202310094558.X

    申请日:2023-02-10

    Abstract: 本发明公开了一种基于高阶函数的数据竞争检测方法,包括:对程序进行预处理,构建跨线程函数调用图和各函数的控制流图,按照逆拓扑排序的顺序遍历函数调用图,确定每个函数的分析顺序;按序选取一个待分析的函数,遍历函数的控制流图,获取各个函数的高阶函数摘要和由于函数调用和参数传递产生的过程间访问事件集;基于向量时钟和高阶函数摘要对访问事件进行发生序分析;通过数据竞争发生的条件排除不满足的访问事件对,获取所有可能发生数据竞争的结果。本发明可方便在调用点处按实参和形参对应的关系完成函数摘要中高阶函数参数的代入,有效提高了过程间数据竞争信息收集的效率,再通过向量时钟与函数摘要的结合,可进行高效的发生序分析。

    一种基于循环不变式的间接跳转目标地址识别方法及装置

    公开(公告)号:CN115129320A

    公开(公告)日:2022-09-30

    申请号:CN202210686923.1

    申请日:2022-06-17

    Abstract: 本发明提供了一种基于循环不变式的间接跳转目标地址识别方法及装置。方法包括:将二进制程序解码成中间表示BRIL;根据BRIL语义和控制流结构计算循环不变式,并将其保存到分析树的结点中;深度优先遍历分析树,将循环不变式不断约简合并,生成约束表达式集;对约束表达式集求解,得到间接跳转目标地址;将目标地址处的语句作为分析入口,目标地址作为初始值,重新进行分析树的构建、约束表达式集的生成和求解,直到间接跳转目标地址不再发生变化(不动点)。本发明相比于传统数据流分析的方法,利用循环不变式来增加对地址数据的分析深度,并能够减少对循环结构的分析次数,从而提高间接跳转目标地址识别的准确度和效率。

    一种基于高阶函数的数据竞争检测方法

    公开(公告)号:CN115794592A

    公开(公告)日:2023-03-14

    申请号:CN202310094558.X

    申请日:2023-02-10

    Abstract: 本发明公开了一种基于高阶函数的数据竞争检测方法,包括:对程序进行预处理,构建跨线程函数调用图和各函数的控制流图,按照逆拓扑排序的顺序遍历函数调用图,确定每个函数的分析顺序;按序选取一个待分析的函数,遍历函数的控制流图,获取各个函数的高阶函数摘要和由于函数调用和参数传递产生的过程间访问事件集;基于向量时钟和高阶函数摘要对访问事件进行发生序分析;通过数据竞争发生的条件排除不满足的访问事件对,获取所有可能发生数据竞争的结果。本发明可方便在调用点处按实参和形参对应的关系完成函数摘要中高阶函数参数的代入,有效提高了过程间数据竞争信息收集的效率,再通过向量时钟与函数摘要的结合,可进行高效的发生序分析。

Patent Agency Ranking