基于seq2seq代码表示学习的细粒度漏洞检测方法

    公开(公告)号:CN114969763A

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

    申请号:CN202210700763.1

    申请日:2022-06-20

    Abstract: 本发明公开了一种基于seq2seq代码表示学习的细粒度漏洞检测方法,首先,提取漏洞候选关键节点作为切片准则,再使用程序切片技术提取程序中的切片代码段。然后,使用基于seq2seq深度学习模型,对切片代码段进行表示学习,生成包含语句间长依赖关系的语句向量表示序列,将序列中每条语句的向量表示送入检测器中,检测其是否为漏洞语句。该方法能够充分利用代码中的全局和局部语义信息,学习语句内和语句间的漏洞相关的特征,避免传统的基于深度学习分类模型对代码表示学习时难以捕获漏洞语句及其上下文之间的长依赖信息的问题,利用seq2seq模型对代码进行表示学习生成的语句向量表示序列,更适合语句级的细粒度漏洞检测。

    一种基于程序不变量的软件故障定位方法及装置

    公开(公告)号:CN109144882B

    公开(公告)日:2021-07-06

    申请号:CN201811096080.X

    申请日:2018-09-19

    Abstract: 本发明公开了一种程序不变量的软件故障定位方法及装置。该方法包括:针对目标软件源代码进行语句、值和逻辑表达式级的插桩,采用预设的测试用例集合执行插桩后的源代码,获得执行信息;对预设失败测试用例集合进行聚类,并对每个聚类,选择有助于区分缺陷语句的成功测试用例集合;学习优选成功测试用例集合的执行信息,获得程序不变量集合,包括集合型、真值表型和浮点型范围不变量;根据失败测试用例集合的执行信息和程序不变量集合检测不变量违背,获得可疑语句集合。采用依赖分析过滤掉因故障传播导致的不变量违背误检,统计分析各语句处的不变量违背,计算语句可疑度。本发明提高了软件故障定位的准确性,克服了逻辑表达式缺陷定位漏检问题。

    一种使用收缩执行依赖图识别库函数的方法

    公开(公告)号:CN103577728B

    公开(公告)日:2016-03-30

    申请号:CN201310572174.0

    申请日:2013-11-16

    Abstract: 一种使用收缩执行依赖图识别库函数的方法,属于软件逆向工程领域。所述方法为:1)对目标函数和库函数建立执行依赖图(EDG);2)对EDG的局部EDG序列化,得到特征值序列和有序邻接矩阵;3)参照库函数EDG将目标函数和库函数EDG中有唯一点序列且不包含库函数EDG首尾的局部EDG收缩成点;4)判断库函数收缩EDG是否是目标函数收缩EDG的同构子图;5)验证识别结果是否有效。本方法不但能准确识别完整库函数,还能识别传统方法不能识别的多态及非连续字节的内联库函数,并有效缩短识别时间。

    一种使用收缩执行依赖图识别库函数的方法

    公开(公告)号:CN103577728A

    公开(公告)日:2014-02-12

    申请号:CN201310572174.0

    申请日:2013-11-16

    CPC classification number: G06F21/14

    Abstract: 一种使用收缩执行依赖图识别库函数的方法,属于软件逆向工程领域。所述方法为:1)对目标函数和库函数建立执行依赖图(EDG);2)对EDG的局部EDG序列化,得到特征值序列和有序邻接矩阵;3)参照库函数EDG将目标函数和库函数EDG中有唯一点序列且不包含库函数EDG首尾的局部EDG收缩成点;4)判断库函数收缩EDG是否是目标函数收缩EDG的同构子图;5)验证识别结果是否有效。本方法不但能准确识别完整库函数,还能识别传统方法不能识别的多态及非连续字节的内联库函数,并有效缩短识别时间。

    一种新的使用逆向扩展控制流图的静态函数识别方法

    公开(公告)号:CN103440122A

    公开(公告)日:2013-12-11

    申请号:CN201310291941.0

    申请日:2013-07-12

    Abstract: 一种新的使用逆向扩展控制流图的静态函数识别方法,属于软件逆向工程领域。所述方法包括如下步骤:步骤1:建立区域逆向扩展控制流图的集合;步骤2:对逆向扩展控制流图去噪,删除构建过程中搜索出的非编译器能生成的节点;步骤3:删除和合并逆向扩展控制流图;步骤4:在逆向扩展控制流图中识别函数入口;步骤5:得到指定区域中多个函数的识别结果。与传统方法不同,本发明以函数的返回指令作为识别特征,以函数返回指令节点作为逆向搜索起点构建逆向扩展控制流图,能够在指定二进制代码区域中识别多个函数,并且能够有效识别传统静态识别方法无法识别的无特定头字节特征及无交叉引用的函数。

    程序设计语言编程题自动评分的方法

    公开(公告)号:CN1598809A

    公开(公告)日:2005-03-23

    申请号:CN200410043830.9

    申请日:2004-08-25

    Abstract: 本发明公开一种用于C、Pascal、Fortran、Basic程序设计语言编程题自动评分的方法。步骤:输入学生编写的程序(S)及标准答案集;将程序(S)和标准答案(Ti)进行各自高级语言的词法、语法分析,生成系统依赖图(Gs)、(Gt,i);对(Gs)、(Gt,i)进行规范化处理;将(Gs)、(Gt,i)中的表达式用语法树表示,消除(Gs)、(Gt,i)中的代码多样化表示形式;对(Gs)、(Gt,i)的处理结果从程序的规模、结构、深度及知识应用四个层次进行匹配;按照评分标准给出学生编写的程序一次匹配的得分(108),从(S)和(Ti)的所有匹配结果中选择一个最高分作为学生成绩最终得分(110)。本发明所述的自动评分方法对学生编写的程序中各种评分因素考虑的比较全面,因此,相对人工评分来说它的评分精度较高。

    一种文档指导的API使用序列搜索方法

    公开(公告)号:CN116301824B

    公开(公告)日:2025-04-29

    申请号:CN202310131203.3

    申请日:2023-02-17

    Abstract: 本发明公开了一种文档指导的API序列搜索方法,所示方法包括如下步骤:步骤1:通过挖掘API文档仓库获取API集合以及API文档字典;步骤2:通过挖掘代码仓库构建数据集以及用于搜索的API使用序列数据库;步骤3:对原始数据进行预处理,并将其转化成能被深度学习模型处理的特征向量;步骤4:构建网络模型;步骤5:训练网络模型,并使用训练好的网络模型实现API使用序列搜索。本发明通过将API文档作为模型训练的指导信息,辅助实现跨模态注意力与跨模态相似度计算,能够缓解功能描述和API使用序列之间的语义鸿沟问题,从而提高搜索的准确率。

    一种SysML模型生成与推荐方法

    公开(公告)号:CN116483348B

    公开(公告)日:2024-10-11

    申请号:CN202310467547.1

    申请日:2023-04-26

    Abstract: 本发明公开了一种SysML模型生成与推荐方法,所述方法通过学习已有项目需求和SysML模型,构建SysML需求图自动生成器,实现根据自然语言表达的系统需求自动化地生成SysML需求图,并通过SysML模型的需求追溯关系推荐模型,支持模型驱动的系统工程中智能化的模型复用。本发明可以根据自然语言需求,自动化地生成SysML需求图模型,并支持可视化的需求确认和变更,进而利用SysML模型的可追溯性,自动化地推荐模块图、活动图等其他SysML图模型,辅助软件系统建模和开发,提高软件系统的开发效率和质量。本发明也适用于UML模型的生成和推荐,还可以进一步应用于其他低代码开发过程中的模型生成和推荐。

    基于seq2seq代码表示学习的细粒度漏洞检测方法

    公开(公告)号:CN114969763B

    公开(公告)日:2024-07-16

    申请号:CN202210700763.1

    申请日:2022-06-20

    Abstract: 本发明公开了一种基于seq2seq代码表示学习的细粒度漏洞检测方法,首先,提取漏洞候选关键节点作为切片准则,再使用程序切片技术提取程序中的切片代码段。然后,使用基于seq2seq深度学习模型,对切片代码段进行表示学习,生成包含语句间长依赖关系的语句向量表示序列,将序列中每条语句的向量表示送入检测器中,检测其是否为漏洞语句。该方法能够充分利用代码中的全局和局部语义信息,学习语句内和语句间的漏洞相关的特征,避免传统的基于深度学习分类模型对代码表示学习时难以捕获漏洞语句及其上下文之间的长依赖信息的问题,利用seq2seq模型对代码进行表示学习生成的语句向量表示序列,更适合语句级的细粒度漏洞检测。

    在API知识图谱上基于Q学习的API序列搜索方法

    公开(公告)号:CN114969272B

    公开(公告)日:2024-07-02

    申请号:CN202210743639.3

    申请日:2022-06-27

    Abstract: 本发明公开了一种在API知识图谱上基于Q学习的API序列搜索方法,首先,设计了API本体结构,并从API文档与开源软件项目中抽取API知识用于构建API知识图谱。其次,通过Word2Vec词嵌入方法以及TransE表示学习方法生成强化学习的状态表示。再次,基于DQN方法,给出了基于强化学习的API序列搜索模型的训练算法。最后,基于训练好的强化学习模型,实现API序列搜索。本发明将API使用序列搜索任务转化为基于API知识图谱的路径搜索任务,能更好地保证搜索到的API序列的合法性。本发明采用强化学习实现API使用序列搜索,其独特的探索机制能探索更丰富的API调用方式,从而增强模型的泛化能力。

Patent Agency Ranking