-
公开(公告)号:CN115794592A
公开(公告)日:2023-03-14
申请号:CN202310094558.X
申请日:2023-02-10
Applicant: 南京邮电大学
Abstract: 本发明公开了一种基于高阶函数的数据竞争检测方法,包括:对程序进行预处理,构建跨线程函数调用图和各函数的控制流图,按照逆拓扑排序的顺序遍历函数调用图,确定每个函数的分析顺序;按序选取一个待分析的函数,遍历函数的控制流图,获取各个函数的高阶函数摘要和由于函数调用和参数传递产生的过程间访问事件集;基于向量时钟和高阶函数摘要对访问事件进行发生序分析;通过数据竞争发生的条件排除不满足的访问事件对,获取所有可能发生数据竞争的结果。本发明可方便在调用点处按实参和形参对应的关系完成函数摘要中高阶函数参数的代入,有效提高了过程间数据竞争信息收集的效率,再通过向量时钟与函数摘要的结合,可进行高效的发生序分析。
-
公开(公告)号:CN116974914A
公开(公告)日:2023-10-31
申请号:CN202310795809.7
申请日:2023-06-30
Applicant: 南京邮电大学
IPC: G06F11/36
Abstract: 本发明涉及函数式编程和程序分析领域,公开了一种基于高阶函数的代码依恋检测方法包括,程序预处理,生成可以识别多态调用方法名的虚函数表,构造函数调用图;构建每个过程高阶函数形式的函数摘要;通过生成的高阶函数形式的函数摘要,调用点处对函数摘要的函数参数进行相应代入,获取过程间由于过程调用和参数传递产生的代码依恋值信息;将计算得到的依恋值信息进行汇总,获取每个类中的每个方法的依恋度量值,检测程序中是否存在代码依恋。本发明解决了当前检测方法很少考虑上下文函数调用关系,以及类是否被具体实例化的不足,提高代码依恋检测的精度及其在生产生活中的应用价值。
-
公开(公告)号:CN117093223A
公开(公告)日:2023-11-21
申请号:CN202311075050.1
申请日:2023-08-24
Applicant: 南京邮电大学
Abstract: 本发明公开了一种基于高阶函数的高效静态污点分析方法包括,采集数据并制定污点源、汇聚点及无害化处理的标记规则;将标记后的源程序转成中间表示语言IR,根据中间表示语言IR实际的调用关系构建函数调用图;根据获取的子过程分析顺序,构建程序P的高阶函数形式的函数摘要;利用构建的程序P的高阶函数形式的函数摘要,在过程调用点处对函数摘要的函数参数进行相应代入,获取由于过程调用和参数传递产生的依赖信息;获取污点标记处的依赖信息后,根据污点传播规则和无害化处理标记,对标注的污点源状态进行更新。本发明避免了传统构建依赖图的方法,提高了污点分析的效率,可以更高效的通过污点分析方法来检测软件中存在的漏洞问题。
-
公开(公告)号:CN116881907A
公开(公告)日:2023-10-13
申请号:CN202310829695.3
申请日:2023-07-07
Applicant: 南京邮电大学
Abstract: 本发明公开了一种基于数据流分析的动静态ANDROID隐私泄露检测方法及系统,遍历目标应用程序的源代码来标记源点与汇点。根据源与汇列表进行静态污点分析,得到潜在隐私泄露数据流。根据潜在泄露数据流中的每一个汇点,以及应用程序的动态执行结果,生成相应切片准则,进行数次后向切片。遍历切片生成的代码片段,检查源点是否被调用。本发明在上述过程中,对数据流是否为假阳性进行判定。相比于传统的污点分析方法,本发明引入动态程序切片对数据流进行二次分析,能够提取应用程序真实的执行轨迹,并且通过静态污点分析,去除了大量源与汇的冗余信息,在较少的系统开销下有效地降低了结果输出的假阳率。
-
公开(公告)号:CN116861378A
公开(公告)日:2023-10-10
申请号:CN202310718912.1
申请日:2023-06-16
Applicant: 南京邮电大学
Abstract: 本发明公开了一种用于代码溯源的程序水印嵌入和提取方法及系统,包括:由源代码构建函数调用图;按照逆拓扑排序遍历函数调用图,将存在调用关系的函数划分为一个代码块并对每一个代码块进行信息流分析得到代码块中的信息流关系;构建源程序的代码属性图;根据代码块中的信息流关系和代码属性图形成程序联合属性图;对程序联合属性图中变量节点的关系边数进行计算并选取关键节点;根据关键节点和用户身份信息嵌入水印;将关键节点作为依据进行双向程序切片,并根据水印提取规则提取水印。本发明不仅可减小水印损失的风险,还可加强水印与源代码间的依赖并提高隐蔽性,降低在静态分析中被发现的风险,无需依赖源代码也能提取到水印信息。
-
公开(公告)号:CN115129320B
公开(公告)日:2024-05-24
申请号:CN202210686923.1
申请日:2022-06-17
Applicant: 南京邮电大学
Abstract: 本发明提供了一种基于循环不变式的间接跳转目标地址识别方法及装置。方法包括:将二进制程序解码成中间表示BRIL;根据BRIL语义和控制流结构计算循环不变式,并将其保存到分析树的结点中;深度优先遍历分析树,将循环不变式不断约简合并,生成约束表达式集;对约束表达式集求解,得到间接跳转目标地址;将目标地址处的语句作为分析入口,目标地址作为初始值,重新进行分析树的构建、约束表达式集的生成和求解,直到间接跳转目标地址不再发生变化(不动点)。本发明相比于传统数据流分析的方法,利用循环不变式来增加对地址数据的分析深度,并能够减少对循环结构的分析次数,从而提高间接跳转目标地址识别的准确度和效率。
-
公开(公告)号:CN117290020A
公开(公告)日:2023-12-26
申请号:CN202311204416.0
申请日:2023-09-19
Applicant: 南京邮电大学
IPC: G06F9/448
Abstract: 本发明公开了一种基于延续传递的函数指针指向分析方法、装置及系统,包括选取兴趣点函数指针,并进行相关续传递列表和指向集的初始化;从兴趣点函数指针所在语句出发,逆着控制流的方向对程序进行过程内分析,使用函数摘要保存过程内分析结果,并根据函数摘要更新延续传递列表和指向集;若遇到过程间作用信息,则基于过程间作用信息产生的影响,对所影响的函数进行过程内分析,分析结束后返回至出现过程间作用信息语句的直接前驱,继续进行过程内分析;当基于延续传递列表判断出延续传递为终止状态,则输出对应的指向集。本发明利用延续传递的特性,保存程序过程间作用信息,在需要的时候取出信息返回过程内计算其结果,提高指针分析精确性。
-
公开(公告)号:CN115794592B
公开(公告)日:2023-07-04
申请号:CN202310094558.X
申请日:2023-02-10
Applicant: 南京邮电大学
Abstract: 本发明公开了一种基于高阶函数的数据竞争检测方法,包括:对程序进行预处理,构建跨线程函数调用图和各函数的控制流图,按照逆拓扑排序的顺序遍历函数调用图,确定每个函数的分析顺序;按序选取一个待分析的函数,遍历函数的控制流图,获取各个函数的高阶函数摘要和由于函数调用和参数传递产生的过程间访问事件集;基于向量时钟和高阶函数摘要对访问事件进行发生序分析;通过数据竞争发生的条件排除不满足的访问事件对,获取所有可能发生数据竞争的结果。本发明可方便在调用点处按实参和形参对应的关系完成函数摘要中高阶函数参数的代入,有效提高了过程间数据竞争信息收集的效率,再通过向量时钟与函数摘要的结合,可进行高效的发生序分析。
-
公开(公告)号:CN115129320A
公开(公告)日:2022-09-30
申请号:CN202210686923.1
申请日:2022-06-17
Applicant: 南京邮电大学
Abstract: 本发明提供了一种基于循环不变式的间接跳转目标地址识别方法及装置。方法包括:将二进制程序解码成中间表示BRIL;根据BRIL语义和控制流结构计算循环不变式,并将其保存到分析树的结点中;深度优先遍历分析树,将循环不变式不断约简合并,生成约束表达式集;对约束表达式集求解,得到间接跳转目标地址;将目标地址处的语句作为分析入口,目标地址作为初始值,重新进行分析树的构建、约束表达式集的生成和求解,直到间接跳转目标地址不再发生变化(不动点)。本发明相比于传统数据流分析的方法,利用循环不变式来增加对地址数据的分析深度,并能够减少对循环结构的分析次数,从而提高间接跳转目标地址识别的准确度和效率。
-
-
-
-
-
-
-
-