-
公开(公告)号:CN116560659A
公开(公告)日:2023-08-08
申请号:CN202310294747.1
申请日:2023-03-24
Applicant: 北京轩宇信息技术有限公司
IPC: G06F8/41
Abstract: 一种千万行级代码编程规范符合性并行检查方法,包括步骤一,全局信息提取;步骤二,编码规范检查;所述步骤2.2中,如果检查文件是C/CPP文件,则根据规则需求,直接从全局信息库中读取信息,进行分析,如果检查头文件所属翻译单元与当前翻译单元不同,跳过当前头文件全部分析,如果检查头文件所属翻译单元与当前翻译单元相同,则根据规则需求,直接从全局信息库中读取信息,进行分析;本发明采用分阶段并行分析的方式,将规则检查分为写如全局信息阶段和规则检查阶段,加快分析效率同时避免读写数据竞争,并使用压缩的符号信息存储设计,降低中间文件存储空间。达到确保分析精度的同时,加快分析速度,降低磁盘开销。
-
公开(公告)号:CN112269648A
公开(公告)日:2021-01-26
申请号:CN202011272405.2
申请日:2020-11-13
Applicant: 北京轩宇信息技术有限公司
Abstract: 本发明公开了一种多阶段程序分析的并行任务分配方法及装置。所述方法包括:根据待分析代码中所有任务之间的依赖关系,构建所述待分析代码对应的任务关系图;获取所述待分析代码中需要运行的分析任务;根据所述任务关系图和所述分析任务,对所述分析任务进行阶段划分,得到阶段任务集合;所述阶段任务集合中包含至少一个可被并行执行的并行任务;根据并发运行任务数,运行所述阶段任务集合中的阶段任务,并获取任务运行结果。本发明能够较大程度的发挥硬件性能,缩短整体分析时间,且能够有效解决将所有检查器结果堆积到同一个结果文件中,检查结果较多时,结果文件过大,不便于读取的问题。
-
公开(公告)号:CN112363729B
公开(公告)日:2024-05-14
申请号:CN202011322690.4
申请日:2020-11-23
Applicant: 北京轩宇信息技术有限公司
Abstract: 本发明实施例公开了一种用于静态分析的多编译混合编译的监控方法及装置。所述方法包括:获取待分析程序对应的程序编译日志;根据所述程序编译日志,识别得到编译命令;根据所述编译命令,设计通用的配置文件模型,并将所述程序编译日志映射至所述配置文件模型,得到转换的编译参数;根据编译器类型提取所述待分析程序对应的编译信息。本发明实施例可以实现对多编译器混合编译的项目进行可配置的编译监控。
-
公开(公告)号:CN116450502A
公开(公告)日:2023-07-18
申请号:CN202310294807.X
申请日:2023-03-24
Applicant: 北京轩宇信息技术有限公司
IPC: G06F11/36
Abstract: 本发明公开了一种提升静态分析精度的中间表示方法,包括以下步骤:步骤一,生成抽象语法树;步骤二,构造控制流图;步骤三,执行指针分析;步骤四,插入mu、chi语句;步骤五,构造支配关系;步骤六,构造控制依赖图;步骤七,替换phi函数;步骤八,SSA构造;步骤九,组合控制依赖图;步骤十,完成中间表示的构建;本发明相较于现有的静态分析用中间表示方法,它能够精确的编码程序执行的所有语义;同时它是能够应用于传统的数据流分析、污点分析算法,提升分析效率;另外由于该IR图编码了所有的执行语义,所以能够很简洁地通过遍历图的方式,完成路径敏感的数据流分析和污点分析,或者符号执行。
-
公开(公告)号:CN111159022A
公开(公告)日:2020-05-15
申请号:CN201911329257.0
申请日:2019-12-20
Applicant: 北京轩宇信息技术有限公司
IPC: G06F11/36
Abstract: 本发明实施例提供了一种基于单变量访问序模式的中断数据访问冲突检测方法及装置。所述方法包括:获取多个源文件;对每个所述源文件的函数进行可达访问分析,生成每个所述源文件的可达访问图;使用所述多个源文件的函数调用关系和各所述源文件的函数摘要,更新各所述可达访问图;遍历各更新后的可达访问图,匹配单变量访问序模式,得到中断数据访问冲突检测结果。本发明实施例对单文件进行独立分析,避免了跨文件的分析时在不同文件交替分析,减小了内存占用的峰值,可适用于大规模程序。
-
公开(公告)号:CN112269648B
公开(公告)日:2024-05-31
申请号:CN202011272405.2
申请日:2020-11-13
Applicant: 北京轩宇信息技术有限公司
Abstract: 本发明公开了一种多阶段程序分析的并行任务分配方法及装置。所述方法包括:根据待分析代码中所有任务之间的依赖关系,构建所述待分析代码对应的任务关系图;获取所述待分析代码中需要运行的分析任务;根据所述任务关系图和所述分析任务,对所述分析任务进行阶段划分,得到阶段任务集合;所述阶段任务集合中包含至少一个可被并行执行的并行任务;根据并发运行任务数,运行所述阶段任务集合中的阶段任务,并获取任务运行结果。本发明能够较大程度的发挥硬件性能,缩短整体分析时间,且能够有效解决将所有检查器结果堆积到同一个结果文件中,检查结果较多时,结果文件过大,不便于读取的问题。
-
公开(公告)号:CN111159022B
公开(公告)日:2023-05-02
申请号:CN201911329257.0
申请日:2019-12-20
Applicant: 北京轩宇信息技术有限公司
IPC: G06F11/36
Abstract: 本发明实施例提供了一种基于单变量访问序模式的中断数据访问冲突检测方法及装置。所述方法包括:获取多个源文件;对每个所述源文件的函数进行可达访问分析,生成每个所述源文件的可达访问图;使用所述多个源文件的函数调用关系和各所述源文件的函数摘要,更新各所述可达访问图;遍历各更新后的可达访问图,匹配单变量访问序模式,得到中断数据访问冲突检测结果。本发明实施例对单文件进行独立分析,避免了跨文件的分析时在不同文件交替分析,减小了内存占用的峰值,可适用于大规模程序。
-
公开(公告)号:CN115858374A
公开(公告)日:2023-03-28
申请号:CN202211636295.2
申请日:2022-12-19
Applicant: 北京轩宇信息技术有限公司
IPC: G06F11/36
Abstract: 本发明公开了针对大规模静态缺陷检测的指针分析方法,包括以下步骤:步骤一,解析被分析工程的源代码;步骤二,构造控制流图;步骤三,构造函数调用图;步骤四,对调用图进行拓扑排序;步骤五,执行符号化的局部指针分析;步骤六,完成全程序的指针分析;步骤七,提供指向信息;所述步骤一中,标准化后的程序中,每条语句最多只有一个副作用,即函数调用或赋值操作;相较于现有的全程序指针分析方法,本发明所采用的模块化分析方法在分析大规模项目时,既能保证精度,又能显著降低开销,该方法通过在程序的语法树层面执行模块化的局部指针分析,得到的指针关系易于理解,且方便缺陷检测框架进行调试定位。
-
公开(公告)号:CN115658508A
公开(公告)日:2023-01-31
申请号:CN202211323819.2
申请日:2022-10-28
Applicant: 北京轩宇信息技术有限公司
Abstract: 本发明公开了提升源代码静态分析工具鲁棒性的方法,包括以下步骤:步骤一,设计鲁棒性编译前端;步骤二,设计语法转译器;步骤三,提升原分析工具的鲁棒性;步骤四,添加零配置;所述步骤1.2中,词法解析模块预留了nextToken接口可供子类实现;本发明通过实现鲁棒性编译前端生成AST,并将该AST转译成原分析工具的AST,复用已有分析工具的代码分析能力,该编译前端内置了可扩展的预处理模块,拥有较强的编译错误恢复能力,较强的可扩展性,能够保证在复用已有代码资产的前提下,提高分析工具的鲁棒性,在被测软件不完整配置的分析条件下,仍能给出准确的分析结果,降低了静态分析工具使用者的门槛,提升工具的用户体验。
-
公开(公告)号:CN116450501A
公开(公告)日:2023-07-18
申请号:CN202310294779.1
申请日:2023-03-24
Applicant: 北京轩宇信息技术有限公司
IPC: G06F11/36
Abstract: 本发明公开了一种提升静态分析精度的符号分析方法,包括以下步骤:步骤一,生成抽象语法树和控制流图;步骤二,生成调用图;步骤三,执行指针分析;步骤四,全局值编号;步骤五,计算CFG支配关系、支配边界以及控制依赖图;步骤六,静态单赋值形式构造;步骤七,显式暴露函数副作用;步骤八,构造带条件数据依赖图;步骤九,符号分析;步骤十,约束求解;本发明利用指针分析划分所有的内存区域,使得它能够处理所有的语言特性,提高了适用范围;本发明基于静态单赋值,以及通过构造带条件数据依赖图和控制依赖图,可以简洁地以遍历图的方式完成符号分析,并且通过调用SMT求解器求解以得到精确的解。
-
-
-
-
-
-
-
-
-