一种多阶段程序分析的并行任务分配方法及装置

    公开(公告)号:CN112269648B

    公开(公告)日:2024-05-31

    申请号:CN202011272405.2

    申请日:2020-11-13

    Abstract: 本发明公开了一种多阶段程序分析的并行任务分配方法及装置。所述方法包括:根据待分析代码中所有任务之间的依赖关系,构建所述待分析代码对应的任务关系图;获取所述待分析代码中需要运行的分析任务;根据所述任务关系图和所述分析任务,对所述分析任务进行阶段划分,得到阶段任务集合;所述阶段任务集合中包含至少一个可被并行执行的并行任务;根据并发运行任务数,运行所述阶段任务集合中的阶段任务,并获取任务运行结果。本发明能够较大程度的发挥硬件性能,缩短整体分析时间,且能够有效解决将所有检查器结果堆积到同一个结果文件中,检查结果较多时,结果文件过大,不便于读取的问题。

    针对大规模静态缺陷检测的指针分析方法

    公开(公告)号:CN115858374A

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

    申请号:CN202211636295.2

    申请日:2022-12-19

    Abstract: 本发明公开了针对大规模静态缺陷检测的指针分析方法,包括以下步骤:步骤一,解析被分析工程的源代码;步骤二,构造控制流图;步骤三,构造函数调用图;步骤四,对调用图进行拓扑排序;步骤五,执行符号化的局部指针分析;步骤六,完成全程序的指针分析;步骤七,提供指向信息;所述步骤一中,标准化后的程序中,每条语句最多只有一个副作用,即函数调用或赋值操作;相较于现有的全程序指针分析方法,本发明所采用的模块化分析方法在分析大规模项目时,既能保证精度,又能显著降低开销,该方法通过在程序的语法树层面执行模块化的局部指针分析,得到的指针关系易于理解,且方便缺陷检测框架进行调试定位。

    提升源代码静态分析工具鲁棒性的方法

    公开(公告)号:CN115658508A

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

    申请号:CN202211323819.2

    申请日:2022-10-28

    Abstract: 本发明公开了提升源代码静态分析工具鲁棒性的方法,包括以下步骤:步骤一,设计鲁棒性编译前端;步骤二,设计语法转译器;步骤三,提升原分析工具的鲁棒性;步骤四,添加零配置;所述步骤1.2中,词法解析模块预留了nextToken接口可供子类实现;本发明通过实现鲁棒性编译前端生成AST,并将该AST转译成原分析工具的AST,复用已有分析工具的代码分析能力,该编译前端内置了可扩展的预处理模块,拥有较强的编译错误恢复能力,较强的可扩展性,能够保证在复用已有代码资产的前提下,提高分析工具的鲁棒性,在被测软件不完整配置的分析条件下,仍能给出准确的分析结果,降低了静态分析工具使用者的门槛,提升工具的用户体验。

    图神经网络模型训练方法、软件缺陷检测方法及系统

    公开(公告)号:CN112288079A

    公开(公告)日:2021-01-29

    申请号:CN202011286945.6

    申请日:2020-11-17

    Abstract: 本发明公开了一种图神经网络模型训练方法、软件缺陷检测方法及系统。包括:根据软件缺陷数据集,获取训练软件函数及测试软件函数,训练软件函数和测试软件函数预先标注有初始缺陷数据;根据训练软件函数的多维代码属性,构建初始多维代码属性图,根据测试软件函数的多维代码属性,构建目标多维代码属性图;基于初始多维代码属性图对初始图神经网络模型进行训练,得到训练后的图神经网络模型;基于目标多维代码属性图对训练后的图神经网络模型进行测试,获取预测缺陷数据;在初始缺陷数据和预测缺陷数据匹配时,将训练后的图神经网络模型作为目标图神经网络模型。本发明可以提高软件缺陷检测精度,减少了人工干预的过程,易于扩展检测的缺陷类型。

    一种千万行级代码编程规范符合性并行检查方法

    公开(公告)号:CN116560659A

    公开(公告)日:2023-08-08

    申请号:CN202310294747.1

    申请日:2023-03-24

    Abstract: 一种千万行级代码编程规范符合性并行检查方法,包括步骤一,全局信息提取;步骤二,编码规范检查;所述步骤2.2中,如果检查文件是C/CPP文件,则根据规则需求,直接从全局信息库中读取信息,进行分析,如果检查头文件所属翻译单元与当前翻译单元不同,跳过当前头文件全部分析,如果检查头文件所属翻译单元与当前翻译单元相同,则根据规则需求,直接从全局信息库中读取信息,进行分析;本发明采用分阶段并行分析的方式,将规则检查分为写如全局信息阶段和规则检查阶段,加快分析效率同时避免读写数据竞争,并使用压缩的符号信息存储设计,降低中间文件存储空间。达到确保分析精度的同时,加快分析速度,降低磁盘开销。

    一种多阶段程序分析的并行任务分配方法及装置

    公开(公告)号:CN112269648A

    公开(公告)日:2021-01-26

    申请号:CN202011272405.2

    申请日:2020-11-13

    Abstract: 本发明公开了一种多阶段程序分析的并行任务分配方法及装置。所述方法包括:根据待分析代码中所有任务之间的依赖关系,构建所述待分析代码对应的任务关系图;获取所述待分析代码中需要运行的分析任务;根据所述任务关系图和所述分析任务,对所述分析任务进行阶段划分,得到阶段任务集合;所述阶段任务集合中包含至少一个可被并行执行的并行任务;根据并发运行任务数,运行所述阶段任务集合中的阶段任务,并获取任务运行结果。本发明能够较大程度的发挥硬件性能,缩短整体分析时间,且能够有效解决将所有检查器结果堆积到同一个结果文件中,检查结果较多时,结果文件过大,不便于读取的问题。

    一种提升静态分析精度的中间表示方法

    公开(公告)号:CN116450502A

    公开(公告)日:2023-07-18

    申请号:CN202310294807.X

    申请日:2023-03-24

    Abstract: 本发明公开了一种提升静态分析精度的中间表示方法,包括以下步骤:步骤一,生成抽象语法树;步骤二,构造控制流图;步骤三,执行指针分析;步骤四,插入mu、chi语句;步骤五,构造支配关系;步骤六,构造控制依赖图;步骤七,替换phi函数;步骤八,SSA构造;步骤九,组合控制依赖图;步骤十,完成中间表示的构建;本发明相较于现有的静态分析用中间表示方法,它能够精确的编码程序执行的所有语义;同时它是能够应用于传统的数据流分析、污点分析算法,提升分析效率;另外由于该IR图编码了所有的执行语义,所以能够很简洁地通过遍历图的方式,完成路径敏感的数据流分析和污点分析,或者符号执行。

Patent Agency Ranking