基于系统调用依赖图的内核模糊测试用例生成方法

    公开(公告)号:CN112559367B

    公开(公告)日:2022-10-25

    申请号:CN202011538231.X

    申请日:2020-12-23

    Applicant: 南京大学

    Inventor: 王林章 何杰煊

    Abstract: 本发明公开一种基于系统调用依赖图的内核模糊测试用例生成方法,首先根据系统调用接口初始化图的节点和边;其次将系统调用接口按照模板转换成系统调用描述,并对系统调用描述进行“参数‑返回值”依赖分析完善依赖图上各边的权重值;然后选定内核资源对象,通过对内核源码进行静态分析,识别每个系统调用对不同内核资源对象的使用情况,对于使用同一种内核资源对象的两个系统调用将在依赖图上赋予权重。最后用系统调用依赖图指导内核模糊测试用例的生成和变异,当需要在测试用例中增加、删除或替换某个系统调用时,根据依赖图上的权重挑选系统调用进行操作,从而产生更有可能合法的系统调用序列进行模糊测试,提高内核模糊测试工具的效率。

    基于高精度静态程序分析的循环上界计算方法

    公开(公告)号:CN115098162A

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

    申请号:CN202210655377.5

    申请日:2022-06-10

    Applicant: 南京大学

    Abstract: 本发明公开了一种基于高精度静态程序分析的循环上界计算方法,步骤1:定位程序中的循环语句并识别循环控制变量;步骤2:分析循环变量的数据依赖关系;步骤3:对循环上界依赖表达式中变量的可能值进行分析;步骤4:递归计算循环依赖表达式的可能值,其中对于表达式中的普通变量则调用步骤3的方法分析出具体值;步骤5:依据循环结构归纳循环上界的公式计算最终结果。本方法对于循环相关变量来自于形参的情况可分析到调用点的实参;本方法可计算由一些使用频率较高的基本表达式排列组合形成的复杂表达式的结果;本方法可计算内层循环的循环相关变量是外层循环控制变量的情况,针对一些使用频率较高模式的嵌套循环能给出较精确的结果。

    一种基于图神经网络的通用缺陷检测方法

    公开(公告)号:CN114489785A

    公开(公告)日:2022-05-13

    申请号:CN202210167928.3

    申请日:2022-02-23

    Applicant: 南京大学

    Abstract: 本发明公开一种基于图神经网络的通用缺陷检测方法,包括以下步骤:程序预处理,提取程序语义信息图节点的语义特征值,并对图形表示向量化,生成模型需要的输入形式;构建基于图神经网络的通用缺陷预测模型,用标签标记缺陷样本分布,训练图神经网络的缺陷预测能力,将训练过程中的最优模型作为通用缺陷检测模型;使用通用缺陷检测模型对待测程序进行预测,自定义目标缺陷类型,通用缺陷基于距离排名的缺陷预测方法进行预测。特定缺陷为人工确认预测结果,为待测程序添加标签并使用模型进行学习,强化模型预测能力。本发明有效解决了目前的基于机器学习的缺陷预测方法需要大量训练数据学习缺陷特征,无法预测不在训练集中的缺陷类型的问题。

    一种基于硬件的高级程序动态控制流追踪方法和装置

    公开(公告)号:CN112905474B

    公开(公告)日:2022-04-22

    申请号:CN202110253236.6

    申请日:2021-03-09

    Applicant: 南京大学

    Abstract: 本发明公开了一种基于硬件的高级程序动态控制流追踪方法和装置。该方法对待追踪程序静态分析,生成控制流图、类继承图和调用图,通过虚拟机执行待追踪程序收集字节码指令模版、执行信息和追踪数据。然后按照线程对追踪数据进行解码匹配,对照控制流图生成相应的执行流图,最后判断是否存在执行流数据是否存在缺失,如果是,则尽可能还原出执行流图,恢复其中缺失的部分,最终输出执行流图。本发明实现了利用硬件追踪模块对高级语言程序的控制流追踪,并且通过执行流数据的补缺分析处理,解决硬件输出追踪数据和磁盘存储速度不一致的问题。

    一种基于中断序列图的中断驱动系统验证方法

    公开(公告)号:CN110175019B

    公开(公告)日:2021-11-16

    申请号:CN201910480184.9

    申请日:2019-06-04

    Applicant: 南京大学

    Abstract: 本发明公开了一种基于中断序列图的中断驱动系统验证方法,包括如下步骤,步骤1:基于中断序列图来建立中断驱动系统模型;步骤2:根据步骤1得到的中断序列图,将其中的交互片段划分为基本交互和复合交互片段;步骤3:将基本交互片段和复合交互片段依次转换成自动机;步骤4:将步骤3中得到的多个自动机组合成一个混成自动机;步骤5:提取中断序列图的约束,将约束添加到转换得到的自动机模型上;步骤6:提取中断序列图中的验证属性信息,将验证属性作为约束添加到转换得到的自动机模型上;步骤7:将自动机描述成自动机验证工具可接受的输入格式;步骤8:采用自动机验证工具进行验证。

    神经网络分类识别中的对抗样本生成的方法和装置

    公开(公告)号:CN111461261A

    公开(公告)日:2020-07-28

    申请号:CN202010417999.5

    申请日:2020-05-18

    Applicant: 南京大学

    Abstract: 本发明公开了神经网络分类识别中的对抗样本生成的方法和装置。本发明架构了一种对抗样本自动化生产的平台,在这平台中,用户可按照特定样本的应用场景构建出相应的合成函数、不满足度评估函数、噪音空间收缩策略函数组成特定的搜索策略,然后通过本发明的平台自动生成对抗样本,由此固化对抗样本生成的算法,对某种特定样本生成对抗样本效率低的情形时,用户仅需要改变其中的搜索策略即可改进对抗样本的生成效率。

    一种基于黑盒函数与机器学习的代码测试生成方法和装置

    公开(公告)号:CN108763064B

    公开(公告)日:2020-07-07

    申请号:CN201810442423.7

    申请日:2018-05-10

    Applicant: 南京大学

    Abstract: 本发明公开了一种基于黑盒函数与机器学习的代码测试生成方法和装置。本发明通过对被测程序代码静态分析,提取先前测试未覆盖的节点所对应的未覆盖路径,然后将未覆盖路径上的复杂结构的程序代码用黑盒函数打包后,采用基于学习验证的约束求解器和符号执行分析器进行验证求解,得到能够覆盖先前测试未覆盖的节点的测试用例数据,从而使得测试工程师能够利用这些测试用例数据进行回归测试从而测试覆盖先前测试未覆盖的节点。本发明将被测程序中的复杂代码替换成黑盒函数,减少了符号执行过程中对复杂代码片段的分析,将更多系统资源分配在对目标结点覆盖的求解上,从而提高了程序分析效率和目标节点的覆盖率。

    一种基于符号执行的内存泄漏检测方法

    公开(公告)号:CN105808369B

    公开(公告)日:2018-11-23

    申请号:CN201610184888.8

    申请日:2016-03-29

    Abstract: 本发明针对内存泄漏缺陷,提出一种基于符号执行的内存泄漏检测方法,首先对于被测试的源代码,使用静态分析工具处理,得到静态内存泄漏警报;然后,把用源代码和内存泄漏警报,同时输入插桩器,得到插桩后的代码。接着,把插桩后的代码输入测试用例生成模块,生成大量测试用例并执行所有测试用例。每个测试用例运行结束后都有对目标内存对象泄漏情况汇报,最后综合所有测试执行的输出,对内存泄漏测试结果进行判定。本方法解决了静态内存泄漏分析的误报问题和动态测试的漏报问题,并利用符号执行技术生成测试用例,减少了静态分析内存泄漏结果的人工验证工作。提高了动态执行的效率。

    动静态结合的中断驱动程序数据竞争检测方法

    公开(公告)号:CN104090798B

    公开(公告)日:2017-02-15

    申请号:CN201410324303.9

    申请日:2014-07-08

    Applicant: 南京大学

    Abstract: 本发明设计一种动静态结合的中断驱动程序数据竞争检测方法,该方法通过共享资源的检测技术、控制流图生成技术、数据流分析技术、模拟器运行控制技术,利用静态方法来对源程序进行静态分析得到潜在的数据竞争序列,通过对静态分析的结果进行动态执行,验证潜在竞争的真实性,并根据潜在竞争的严重性进行排序,得到测试结果报告。通过本发明实现的工具对中断驱动程序的测试,可以有效地检测出真实的中断相关的竞争关系,并根据严重性提供一系列的潜在竞争关系作为指导,能够极大地促进测试人员的工作效率,突破解决了中断驱动的数据竞争检测问题,保障嵌入式系统的安全和稳定,可以为航天、医疗等高稳定性嵌入式程序需求的关键性安全领域提供可靠性保证。

    一种基于代码变更的移动应用测试脚本自动维护方法

    公开(公告)号:CN106021103A

    公开(公告)日:2016-10-12

    申请号:CN201610323917.4

    申请日:2016-05-16

    Applicant: 南京大学

    CPC classification number: G06F11/3608 G06F11/3644

    Abstract: 本发明提出的一种基于代码变更的移动应用测试脚本自动维护方法,包括以下步骤:步骤1、代码变更分析:分析新旧版本代码中产生变化的代码,进行过滤后,获取导致界面行为模型产生变更的代码变更;步骤2、模型变更分析:利用代码和模型中元素的对应关系对模型进行行为变更分析,得到行为变更信息以及模型变更信息,将变更应用在模型中,得到新模型;步骤3、脚本变更修复:将脚本语句抽象为事件序列,根据行为变更信息、模型变更信息,修复和更新脚本对应的事件序列,得到能够正常使用的新脚本。对受到影响的脚本中的事件序列进行自动的维护和更新,最终得到可以应用在新版本中的脚本,以减轻测试人员维护脚本的负担。

Patent Agency Ranking