一种基于深度学习与程序合成的C/C++程序缺陷自动修复方法

    公开(公告)号:CN108829438B

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

    申请号:CN201810727406.8

    申请日:2018-07-05

    Applicant: 南京大学

    Abstract: 本发明基于深度学习与程序合成的C/C++程序缺陷自动修复方法,输入带有缺陷的C/C++程序、错误定位信息、程序需要满足的规约以及满足相同规约正确程序集,通过学习正确程序中的书写结构,建立一个正确书写结构模型;根据错误定位信息,将错误点之前的代码结构作为模型的输入,预测错误点的书写结构,扩展成修复候选项集,并组织成选择表达式的形式;使用程序合成方法,将带有选择表达式的程序和该程序需要满足的规约转化为逻辑表达式,使用约束求解器,在设定的时间内进行求解;根据每个选择表达式的选项,输出最终的C/C++代码,得到修复后程序。本方法在多项式的时间复杂度内修复C/C++程序常见缺陷,保证修复后程序正确性。

    一种基于机器学习的C程序内存泄漏智能化检测方法

    公开(公告)号:CN108804332A

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

    申请号:CN201810613423.9

    申请日:2018-06-14

    Applicant: 南京大学

    CPC classification number: G06F11/366

    Abstract: 本发明公开一种基于机器学习的C程序内存泄漏智能化检测方法,分为三个阶段:模型构建阶段,根据已有的内存泄漏构建两个数据集,分别从两个数据中提取内存泄漏特征,将内存泄漏特征输入机器学习的分类器进行训练,交叉验证,修改分类器类型及参数,选取分类准确率最高的作为分类器模型来检测内存泄漏。程序分析与特征获取阶段,对源程序进行预分析,获取所有的内存分配点o,然后进行指针分析,构建从o开始的VFG(ValueFlowGraph),提取VFG中每条路径对应的内存泄漏特征。缺陷检测与报告阶段,将程序分析与特征获取阶段的内存泄漏特征输入到模型构建阶段的分类器模型中进行检测,判断从o开始的路径中是否存在内存泄漏,得到内存泄漏报告。

    缓冲区溢出漏洞自动修复方法

    公开(公告)号:CN105809039B

    公开(公告)日:2018-07-27

    申请号:CN201610122116.1

    申请日:2016-03-04

    Applicant: 南京大学

    Abstract: 本发明是种缓冲区溢出漏洞自动修复方法,基于缓冲区溢出模型,自动修复程序中已知的缓冲区溢出漏洞。首先读取并解析已经通过确认过的缓冲区溢出信息文件,该文件包含缓冲区溢出漏洞的源文件名、溢出漏洞代码所在的行号、溢出漏洞代码所使用的API,根据缓冲区溢出漏洞的位置信息得到缓冲区溢出漏洞修复的位置,根据缓冲区溢出漏洞代码所使用的API,以及缓冲区溢出模型得到相应的缓冲区溢出漏洞修复策略;定位到缓冲区溢出漏洞代码的位置,提取函数调用的参数信息;根据提取出的函数调用的参数信息和使用的API,构造出修复代码插桩到源代码中完成修复。

    一种基于程序合成的C/C++程序缺陷自动修复方法

    公开(公告)号:CN108170466A

    公开(公告)日:2018-06-15

    申请号:CN201711394256.5

    申请日:2017-12-21

    Applicant: 南京大学

    Abstract: 本发明公开一种基于程序合成的C/C++程序缺陷自动修复方法,输入带有缺陷的C/C++程序,根据常见的程序缺陷和缺陷程序的类型,设置重写规则,重写规则包括缺陷模式和修复选项。之后将缺陷模式与缺陷程序的语法树进行匹配。若不存在任何匹配的重写规则,则表明无法修复该程序的缺陷。若存在匹配的重写规则,则将匹配的语法树子树替换为选择表达式。之后使用程序合成方法,根据该程序需要满足的规约,得到每个选择表达式的选项。程序合成方法将带有选择表达式的程序和该程序需要满足的规约转化为逻辑表达式,之后使用约束求解器,在设定的时间内进行求解,代入每个选择表达式的选项,将语法树输出为C/C++代码,得到修复后的程序。

    一种基于模型变更的自动维护测试脚本的方法

    公开(公告)号:CN107766253A

    公开(公告)日:2018-03-06

    申请号:CN201711114228.3

    申请日:2017-11-13

    Applicant: 南京大学

    CPC classification number: G06F11/3684 G06F11/3688

    Abstract: 本发明公开了一种基于模型变更的自动维护测试脚本的方法,其特征在于,包括:步骤1、建模,使用建模工具抽取出移动应用的状态转移关系,根据状态转移关系创建事件序列模型EMS(Event Sequence Model,ESM)来描述应用的行为,事件序列模型ESM描述了应用的状态信息以及每一个界面上的控件信息;其中状态是界面,其每一个界面的名称是唯一确定的,如果界面的名称改变了,则原来的界面被删除了,新增了一个新的界面,且原界面中的控件转移到了这个新增的界面中;步骤2、如果当前为应用的初始版本,自动生成测试脚本:步骤3、对于非初始版本的应用,直接通过维护上一版本的测试脚本获得。

    一种实时系统的循环边界内向分析方法

    公开(公告)号:CN104317572B

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

    申请号:CN201410520726.8

    申请日:2014-09-30

    Applicant: 南京大学

    Abstract: 本发明提出了一种针对实时系统的循环边界内向分析方法,该方法基于修改符号执行的路径搜索方式,使得执行引擎能够快速定位到系统中各循环的最大迭代路径,并以此为基础高效地获得系统中各循环边界的估计值。本方法所求得的循环边界估计值具有如下特征:系统能保证每一个循环边界估计值都具有可达性,即一定存在一个系统输入,使得该输入下的系统运行达到边界估计值所获得的循环迭代次数。作为传统循环边界分析方法的必要补充技术,本发明所提出的循环边界内向分析方法可用于估算系统至少能够达到的最大循环迭代次数,从而使得用户能够更为完整有效的分析实时系统的循环边界,提高系统质量。

    一种针对异常处理代码的测试方法

    公开(公告)号:CN105701016A

    公开(公告)日:2016-06-22

    申请号:CN201610122013.5

    申请日:2016-03-03

    Applicant: 南京大学

    CPC classification number: G06F11/3684 G06F11/3668 G06F11/3676

    Abstract: 本发明公布了一种针对java异常处理代码的测试方法,该方法主要是通过评估不同插桩策略来解决使用插桩技术生成针对异常处理代码的测试可信度不高的问题,实现了针对异常处理代码的测试工具。包括以下步骤:步骤1:评价不同插桩策略对测试可信度的影响;步骤2:自动根据待测异常处理代码选择插桩策略;步骤3:开发测试工具来实现对异常处理代码的测试。本发明通过以上步骤可以实现一个针对java异常处理代码的测试方法,能产生测试用例对常规方法难以测试的异常处理结构进行测试。

    一种基于动态树的无线传感网目标跟踪方法

    公开(公告)号:CN103249110B

    公开(公告)日:2015-10-28

    申请号:CN201310168440.3

    申请日:2013-05-08

    Applicant: 南京大学

    CPC classification number: Y02D70/20 Y02D70/38

    Abstract: 本发明给出一种基于动态树的无线传感网目标跟踪方法,该方法采用动态树优化基于无线传感网的目标跟踪中的网络自组织过程,包括构建初始树、动态树的扩展与裁剪、动态树的重构等过程,选取距离目标真实位置最近的节点作为根节点来构造动态树,保证目标跟踪任务始终由网络中最接近目标的节点来承担。本发明能够有效降低无线传感网在目标跟踪过程中的节点能耗,保证目标跟踪的高精确程度,保障基于无线传感网的目标跟踪稳定运行。

    一种基于活动图模型的系统行为仿真方法

    公开(公告)号:CN103246770B

    公开(公告)日:2015-10-14

    申请号:CN201310168258.8

    申请日:2013-05-08

    Applicant: 南京大学

    CPC classification number: G06F8/35 G06F11/3604 G06F11/3668 G06F17/5009

    Abstract: 本发明是一种基于活动图模型的系统行为仿真方法,首先读取并解析待仿真的统一建模语言活动图模型,从中抽取出重要的模型元素信息并在内存中构建一个完整的模型映射;然后对读入的统一建模语言活动图模型进行解析,分别从统一建模语言活动图模型中解析出各种模型元素;再结合采用混合执行的思想对其进行持续的具体执行、符号执行以及约束求解,在达到节点覆盖度阈值的情况下结束该过程;最后使用上一步收集到的仿真用例对统一建模语言活动图模型进行仿真执行。实现了用于统一建模语言活动图模型仿真执行的仿真用例自动生成、统一建模语言活动图模型的仿真执行环境构建、统一建模语言活动图模型仿真用例的节点覆盖度信息统计以及仿真执行结果反馈。

Patent Agency Ranking