-
公开(公告)号:CN105700893A
公开(公告)日:2016-06-22
申请号:CN201610098877.8
申请日:2016-02-23
Applicant: 南京邮电大学
CPC classification number: G06F8/433 , G06F8/75 , G06F11/362 , G06F11/3668
Abstract: 本发明公开一种基于改进系统依赖图的LLVM IR程序切片方法。首先,构造出程序依赖图;然后利用图可达性算法对单个程序的LLVM IR语句进行切片;再根据程序间的调用关系、实参与形参之间的对应关系,将对单个程序的分析扩展到多个程序中去;接着利用新的方法来构造传递依赖边,进而完成系统依赖图的构建;最后,利用两阶段图形可达性算法对系统依赖图进行遍历,完成对多个程序的切片。本发明使切片的时间复杂度大大降低。
-
公开(公告)号:CN106951303B
公开(公告)日:2020-09-22
申请号:CN201710089472.2
申请日:2017-02-20
Applicant: 南京邮电大学
IPC: G06F8/41
Abstract: 本发明公开了一种基于信息流分析的LLVM中间表示程序切片方法。首先,根据调用图CG判断某程序是过程内程序还是过程间程序。所述的过程间程序采用以下步骤:(1)分析程序间的调用关系、实参与形参之间的对应关系;(2)根据公式计算每条调用语句的DS、PS、λS、μS、ρS;(3)再根据CG调用图的逆拓扑序关系来依次分析各个程序,得到过程间程序的DS、PS、λS、μS、ρS;(4)对所有程序的DS、PS、λS、μS、ρS进行复合,得到过程间切片。本发明方法,可对LLVM IR程序类中间语言程序进行切片,通用性强,切片精度高。
-
公开(公告)号:CN106933572B
公开(公告)日:2020-05-19
申请号:CN201710089449.3
申请日:2017-02-20
Applicant: 南京邮电大学
Abstract: 本发明公开了一种基于LLVM中间表示程序切片的度量模型,包括:将源程序通过LLVM命令行转换成对应的LLVM IR语言;构建程序系统依赖图,对程序LLVM IR语句切片;根据程序切片的结果和源程序转换得到的LLVM IR语句得到程序中各模块的模块大小,输出变量的个数,根据各度量模块所有输出变量的切片集中最大的切片集大小和最小的切片集的大小,和所有变量的公共切片集;将上步所得值带入度量函数中,完成对函数的LLVM IR度量,然后计算程序的Halstead度量;将程序所有度量结果先去除具有相同作用的度量值,再构建复杂性度量函数Complexity,并对程序的各个模块的Complexity进行计算并根据其大小进行排序,软件开发或测试可根据各模块的复杂度大小合理分配开发资源,并进行错误检测。本发明有效提高了程序切片的通用性和度量精度。
-
公开(公告)号:CN104572474B
公开(公告)日:2017-09-29
申请号:CN201510050259.1
申请日:2015-01-30
Applicant: 南京邮电大学
IPC: G06F11/36
Abstract: 本发明是一种基于动态切片的轻量级错误定位方法,最顶层是测试用例生成模块,主要负责测试用例的自动化生成。第二层是程序状态修改模块,主要负责动态地改变谓词的结果,以产生值得进行切片的关键谓词。其余模块分别是断点分析模块、切片分析模块和可疑度统计模块;其中,断点分析模块主要负责分析程序崩溃的情况,对内存泄漏和堆栈溢出情况下无法正常执行结束的程序进行分析;切片分析模块主要是对依赖图进行动态切片,切片之后的结果以执行了程序哪几行的形式反馈给用户,用户根据切片结果,对其进行初步分析;可疑度统计模块主要负责计算每条可疑语句块的可疑度。大大减少了切片的工作量。精确的计算出程序崩溃时候的切片语句。
-
公开(公告)号:CN106933572A
公开(公告)日:2017-07-07
申请号:CN201710089449.3
申请日:2017-02-20
Applicant: 南京邮电大学
Abstract: 本发明公开了一种基于LLVM中间表示程序切片的度量模型,包括:将源程序通过LLVM命令行转换成对应的LLVM IR语言;构建程序系统依赖图,对程序LLVM IR语句切片;根据程序切片的结果和源程序转换得到的LLVM IR语句得到程序中各模块的模块大小,输出变量的个数,根据各度量模块所有输出变量的切片集中最大的切片集大小和最小的切片集的大小,和所有变量的公共切片集;将上步所得值带入度量函数中,完成对函数的LLVM IR度量,然后计算程序的Halstead度量;将程序所有度量结果先去除具有相同作用的度量值,再构建复杂性度量函数Complexity,并对程序的各个模块的Complexity进行计算并根据其大小进行排序,软件开发或测试可根据各模块的复杂度大小合理分配开发资源,并进行错误检测。本发明有效提高了程序切片的通用性和度量精度。
-
公开(公告)号:CN105787593A
公开(公告)日:2016-07-20
申请号:CN201610109994.X
申请日:2016-02-29
Applicant: 南京邮电大学
CPC classification number: G06Q10/04 , G06Q10/063
Abstract: 本发明公开了一种构造有限集合部分覆盖的方法,主要分为五个步骤:构造有限集合、求有限集合的所有划分、求第一层覆盖、构造其余覆盖以及查重。在求得有限集合A的划分的基础上进行构造,由于划分本身就是一种覆盖,因此不需要再判断所求结果是否为集合的覆盖,相较于穷举法来说,节省了大量的存储空间及运行时间;可以根据给定的约束条件来构造解空间,在此解空间上寻找问题的优化解,大大减少原搜索空间的范围,提高求解效率。
-
公开(公告)号:CN104572474A
公开(公告)日:2015-04-29
申请号:CN201510050259.1
申请日:2015-01-30
Applicant: 南京邮电大学
IPC: G06F11/36
Abstract: 本发明是一种基于动态切片的轻量级错误定位方法,最顶层是测试用例生成模块,主要负责测试用例的自动化生成。第二层是程序状态修改模块,主要负责动态地改变谓词的结果,以产生值得进行切片的关键谓词。其余模块分别是断点分析模块、切片分析模块和可疑度统计模块;其中,断点分析模块主要负责分析程序崩溃的情况,对内存泄漏和堆栈溢出情况下无法正常执行结束的程序进行分析;切片分析模块主要是对依赖图进行动态切片,切片之后的结果以执行了程序哪几行的形式反馈给用户,用户根据切片结果,对其进行初步分析;可疑度统计模块主要负责计算每条可疑语句块的可疑度。大大减少了切片的工作量。精确的计算出程序崩溃时候的切片语句。
-
公开(公告)号:CN105787369B
公开(公告)日:2018-08-17
申请号:CN201610111353.8
申请日:2016-02-29
Applicant: 南京邮电大学
IPC: G06F21/56
Abstract: 本发明公开了一种基于切片度量的Android软件安全分析方法,包括数据预处理;权限特征分析,用于对从所述权限请求文件中得到的特征权限进行计算;对Android程序切片并对切片进行内聚度和耦合度分析;将所述权限特征分析的结果与所述内聚度和耦合度分析的结果作为评价标准,判断所述Android程序是否有恶意倾向;建立起针对Android程序的安全评估检测模型。本发明将程序切片结果从模块内聚,耦合程度分析Androidapk,减少了对整个apk分析的工作量,减小了工作范围。
-
公开(公告)号:CN106951303A
公开(公告)日:2017-07-14
申请号:CN201710089472.2
申请日:2017-02-20
Applicant: 南京邮电大学
IPC: G06F9/45
Abstract: 本发明公开了一种基于信息流分析的LLVM中间表示程序切片方法。首先,根据调用图CG判断某程序是过程内程序还是过程间程序。所述的过程间程序采用以下步骤:(1)分析程序间的调用关系、实参与形参之间的对应关系;(2)根据公式计算每条调用语句的DS、PS、λS、μS、ρS;(3)再根据CG调用图的逆拓扑序关系来依次分析各个程序,得到过程间程序的DS、PS、λS、μS、ρS;(4)对所有程序的DS、PS、λS、μS、ρS进行复合,得到过程间切片。本发明方法,可对LLVM IR程序类中间语言程序进行切片,通用性强,切片精度高。
-
公开(公告)号:CN105787369A
公开(公告)日:2016-07-20
申请号:CN201610111353.8
申请日:2016-02-29
Applicant: 南京邮电大学
IPC: G06F21/56
CPC classification number: G06F21/563
Abstract: 本发明公开了一种基于切片度量的Android软件安全分析方法,包括数据预处理;权限特征分析,用于对从所述权限请求文件中得到的特征权限进行计算;对Android程序切片并对切片进行内聚度和耦合度分析;将所述权限特征分析的结果与所述内聚度和耦合度分析的结果作为评价标准,判断所述Android程序是否有恶意倾向;建立起针对Android程序的安全评估检测模型。本发明将程序切片结果从模块内聚,耦合程度分析Androidapk,减少了对整个apk分析的工作量,减小了工作范围。
-
-
-
-
-
-
-
-
-