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

    公开(公告)号: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图编码了所有的执行语义,所以能够很简洁地通过遍历图的方式,完成路径敏感的数据流分析和污点分析,或者符号执行。

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

    公开(公告)号: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,复用已有分析工具的代码分析能力,该编译前端内置了可扩展的预处理模块,拥有较强的编译错误恢复能力,较强的可扩展性,能够保证在复用已有代码资产的前提下,提高分析工具的鲁棒性,在被测软件不完整配置的分析条件下,仍能给出准确的分析结果,降低了静态分析工具使用者的门槛,提升工具的用户体验。

    一种提升静态分析精度的符号分析方法

    公开(公告)号:CN116450501A

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

    申请号:CN202310294779.1

    申请日:2023-03-24

    Abstract: 本发明公开了一种提升静态分析精度的符号分析方法,包括以下步骤:步骤一,生成抽象语法树和控制流图;步骤二,生成调用图;步骤三,执行指针分析;步骤四,全局值编号;步骤五,计算CFG支配关系、支配边界以及控制依赖图;步骤六,静态单赋值形式构造;步骤七,显式暴露函数副作用;步骤八,构造带条件数据依赖图;步骤九,符号分析;步骤十,约束求解;本发明利用指针分析划分所有的内存区域,使得它能够处理所有的语言特性,提高了适用范围;本发明基于静态单赋值,以及通过构造带条件数据依赖图和控制依赖图,可以简洁地以遍历图的方式完成符号分析,并且通过调用SMT求解器求解以得到精确的解。

Patent Agency Ranking