一种基于高阶函数的代码依恋检测方法及系统

    公开(公告)号:CN116974914A

    公开(公告)日:2023-10-31

    申请号:CN202310795809.7

    申请日:2023-06-30

    Abstract: 本发明涉及函数式编程和程序分析领域,公开了一种基于高阶函数的代码依恋检测方法包括,程序预处理,生成可以识别多态调用方法名的虚函数表,构造函数调用图;构建每个过程高阶函数形式的函数摘要;通过生成的高阶函数形式的函数摘要,调用点处对函数摘要的函数参数进行相应代入,获取过程间由于过程调用和参数传递产生的代码依恋值信息;将计算得到的依恋值信息进行汇总,获取每个类中的每个方法的依恋度量值,检测程序中是否存在代码依恋。本发明解决了当前检测方法很少考虑上下文函数调用关系,以及类是否被具体实例化的不足,提高代码依恋检测的精度及其在生产生活中的应用价值。

    一种基于高阶函数的动态程序依赖簇检测方法

    公开(公告)号:CN115794120A

    公开(公告)日:2023-03-14

    申请号:CN202310064888.4

    申请日:2023-02-06

    Abstract: 本发明公开了一种基于高阶函数的动态程序依赖簇检测方法包括:用符号执行工具获取程序在给定输入条件下的语句执行历史和函数调用关系,根据实际的调用关系构建简化的函数调用图,根据语句执行历史动态获取过程内的依赖簇信息,采用高阶函数的形式构建函数摘要,根据指令索引进行基本块的遍历和指令动态引用集的计算;利用过程内高阶函数形式的摘要,在调用点处对摘要的参数进行相应代入,获取过程间的依赖簇信息,最后将计算得到依赖簇信息进行汇总,获取给定输入条件下相互依赖的程序语句,从而进行动态程序依赖簇检测。

    一种强鲁棒性的电力数据库指纹生成方法

    公开(公告)号:CN112560099B

    公开(公告)日:2022-11-11

    申请号:CN202011532368.4

    申请日:2020-12-22

    Abstract: 本专利提供了一种强鲁棒性的电力数据库指纹生成方法。为了解决复杂的电力数据在发布后数据库指纹易被破坏的问题,本发明针对查询(插入、删除、更新、查找)场景下的电力数据,结合多面体域的相关知识设计生成一种抵御多种外界攻击的强鲁棒性电力数据库指纹。首先利用浮点多面体域对进行查询操作的电力数据库程序语句分析得到相应的数值不变域,即多面体约束集。然后用多面体约束集表示电力数据库的不稳定属性生成稳定单元,提取基于语义的数据属性。最后哈希算法对稳定单元进行编码,将虚拟主键、属性最高位与指纹关联矩阵的异或值及稳定单元的编码值作为参数,构造出强鲁棒的电力数据库指纹,使其在查询场景下有更好的抵御攻击的能力。

    一种针对电力数据指纹的评估方法

    公开(公告)号:CN112580078B

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

    申请号:CN202011532367.X

    申请日:2020-12-22

    Abstract: 本发明提供了一种针对电力数据指纹的评估方法,包括选取针对电力数据库指纹的评估指标集、利用熵权法和层次分析法耦合优化确定权重、建立基于关联理论的数据指纹优度评价体系三个部分。首先针对电力数据指纹的多指标、复杂的评价任务,通过对电力数据库指纹使用场景进行分析,选取合理且全面的评估指标集;利用熵权法充分利用指标数据内在客观规律,在一定程度上消除评估的主观影响确定客观权重,利用层次分析法确定主观权重,再将主客观权重耦合得到最优权重解;利用关联理论计算关联度,构建电力数据指纹优度评价体系。本发明实现对电力数据指纹的全面客观评估,能够为电力数据指纹方案的选取提供依据。

    一种基于二进制集合的程序依赖簇检测方法

    公开(公告)号:CN115185818A

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

    申请号:CN202210697962.1

    申请日:2022-06-20

    Abstract: 本发明公开了一种基于二进制集合的程序依赖簇检测方法,方法为:以二进制集合形式的数据结构定义依赖集合,并输入基于位运算的通用集合操作接口,得到新的依赖集合数据存储至通用集合操作接口程序的各个指令节点,并遍历程序的每个指令节点;利用通用集合操作接口对指令间的依赖关系进行计算,获得各个指令节点的依赖性分析数据;根据新的集合数据中的集合内容对获得的依赖性分析结果进行重组和归类,获得校正后的依赖性分析结果并实现对程序源代码中的程序依赖簇的进行正确检测。本发明以二进制集合定义集合数据结构,根据数据结构定义操作接口,调用接口计算依赖,对依赖结果进行校正,将校正结果保存从而显著降低分析时空间开销问题。

    一种基于有向图的代码仓库代码块级别冲突排序分组方法

    公开(公告)号:CN115098109A

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

    申请号:CN202210726119.1

    申请日:2022-06-24

    Abstract: 一种基于有向图的代码仓库代码块级别冲突排序分组方法,首先提取出发生冲突的文件列表、冲突文件内部的方法名称以及冲突代码片段的信息进行保存;然后对不同分支上的冲突文件内部的所有方法构造出依赖关系图;其次对比依赖关系图中的节点,将不同分支上构造出的依赖关系图进行合并;接着遍历依赖关系图,将节点携带的文件全路径名、方法名称、方法开始和结束的行号与保存对比,将符合条件的冲突文件全路径名、方法名称按照节点序号从大到小进行保存;最后将处在同一个依赖关系图中的冲突方法分入到同一分组。本方法能够有效地针对当前代码仓库存在的代码块级别进行排序,同时对代码块级别的冲突进行有效的分组从而帮助开发人员有序的解决冲突。

    一种基于高阶函数的轻量级上下文敏感指针分析方法

    公开(公告)号:CN115098108A

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

    申请号:CN202210710437.9

    申请日:2022-06-22

    Abstract: 本发明公开了一种基于高阶函数的轻量级上下文敏感指针分析方法,包括:确定函数分析顺序;根据函数分析顺序收集上下文不敏感的指向约束;收集上下文敏感的指向约束;求解上下文不敏感的指向约束和上下文敏感的指向约束得到被调用函数的指向信息分析结果,并以高阶函数形式保存;判断函数是否全部分析完毕,若未分析完毕,则继续收集其他函数的指向约束;否则,则输出指针分析结果;本发明可以避免现有方法中为解决间接引用问题额外引入辅助变量和映射表,从而高效地进行上下文敏感指针分析。

    基于动态网络表示学习的抗近邻合谋数字指纹生成方法

    公开(公告)号:CN113326485B

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

    申请号:CN202110494761.7

    申请日:2021-05-07

    Abstract: 本发明公开了一种基于动态网络表示学习的抗近邻合谋数字指纹生成方法,首先,用动态社交网络构造连续时间网络,利用连续时间网络的邻居结构的影响概率进行有偏向的随机游走以获得节点采样序列。然后通过Skip‑gram模型训练节点采样序列,使得网络结构上邻近的用户具有相似的用户特征向量码,依据用户特征向量码构造数字指纹可追踪到近邻的合谋用户。最后,针对单独的抗合谋码的辨识性会减弱的问题,结合上述用户特征向量码和CFF码共同构造数字指纹,可在合谋人数增多时准确追踪到合谋用户。在高交互的社交网络中合谋泄密者的关系随时间演化,本发明使用邻居结构的影响概率保留了用户之间的近邻关系,可在动态的社交网络环境下追踪到近邻合谋泄密者。

    一种基于程序切片度量的代码缺陷预测方法

    公开(公告)号:CN114996149A

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

    申请号:CN202210682893.7

    申请日:2022-06-16

    Abstract: 本发明公开了一种基于程序切片度量的代码缺陷预测方法,其包括:对不同编程语言转化成中间语言LLVM IR,对可能存在缺陷的代码关键点生成相应的前向切片和后向切片,构建基于前向切片和后向切片的认知复杂度度量指标和其他切片度量指标,并结合传统的度量指标,通过机器学习模型XGboost进行监督学习训练,最终训练好的模型可以预测代码是否存在缺陷,结合新的切片度量指标可以捕获与程序行为相关的缺陷,比只使用传统度量进行缺陷预测的准确率高。

Patent Agency Ranking