首页 / 专利库 / 电脑安全 / 安全分析 / 安全规则检测方法和系统

安全规则检测方法和系统

阅读:321发布:2024-01-11

专利汇可以提供安全规则检测方法和系统专利检索,专利查询,专利分析的服务。并且本 发明 提供了全局性安全规则检测方法和系统,其中根据设定的全局安全规则在编译器前端从源程序中提取与所述全局安全规则相关的信息并将其保存在与该源程序对应的中间文件中;遍历所有中间文件中保存的信息以检测其是否符合所述全局安全规则;以及响应于检测到不符合所述全局安全规则的信息,发出指示以 修改 与该信息所在的中间文件对应的源程序。该方法中使得代码的全局安全规则检测可以与代码开发同步进行,能及时检测错误并反馈给各方进行纠正,缩小了错误检测和纠正范围,改善了全局安全规则检测效率,加快了整个项目开发进度。,下面是安全规则检测方法和系统专利的具体信息内容。

1.一种安全规则检测方法,包括:
根据设定的全局安全规则在编译器前端从源程序中提取与所述全局安全规则相关的信息并将其保存在与该源程序对应的中间文件中;
遍历所有中间文件中保存的信息以检测其是否符合所述全局安全规则;
响应于检测到不符合所述全局安全规则的信息,发出指示以修改与该信息所在的中间文件对应的源程序。
2.根据权利要求1所述的方法,其中所述全局安全规则为不允许标识符同名,与所述全局安全规则相关的信息包括标识符的名称、类型、所在文件名及行号。
3.根据权利要求1或2所述的方法,还包括响应于对源程序的每次编译,在从源程序中提取与所述全局安全规则相关的信息时,对与所提取的信息进行哈希;以及判断新生成的哈希值与该源程序所对应的中间文件的现有哈希值是否相同,如果相同,则不对该中间文件进行修改,否则将所提取的信息写入该中间文件以替换该中间文件中的原有信息。
4.根据权利要求1所述的方法,还包括通过在编译器中插桩的方式来从源程序中提取与所述全局安全规则相关的信息。
5.根据权利要求1所述的方法,其中根据设定的全局安全规则在编译器前端将源程序进行预处理、词法分析和语法分析之后,从源程序中提取与所述全局安全规则相关的信息。
6.根据权利要求4所述的方法,其中所述源程序为c/C++语言编写,所述编译器为Gcc,插桩位置为编译器前端的pushdecl函数。
7.根据权利要求2所述的方法,其中检测是否符合所述全局安全规则包括:
建立以标识符名称为关键字、以由与该标识符名称同名的所有标识符关联的信息构成的链表或数组为键值的哈希表;
对于每个中间文件中的标识符进行遍历,并执行下列操作:
如果在所述哈希表中没有与该标识符同名的标识符,以该标识符的名称为关键字建立新的哈希表项,并将与该标识符关联的信息保存到与该新建立的哈希表项对应的链表或数组中;
如果在所述哈希表中已有与该标识符同名的标识符,将与该标识符关联的信息保存到该哈希表中同名标识符对应的链表或数组中;
对于其对应数组中元素个数大于1的每个哈希表项,基于每个数组元素中的信息分别发出指示以修改与该信息所在的中间文件对应的源程序。
8.一种安全规则检测系统,包括:
特征提取模,用于根据设定的全局安全规则在编译器前端从源程序中提取与所述全局安全规则相关的信息并将其保存在与该源程序对应的中间文件中;
全局检测模块,用于遍历所有中间文件中保存的信息以检测其是否符合所述全局安全规则;
警报模块,用于响应于检测到不符合所述全局安全规则的信息,发出指示以修改与该信息所在的中间文件对应的源程序。
9.根据权利要求8所述的系统,其中所述全局安全规则为不允许标识符同名,与所述全局安全规则相关的信息包括标识符的名称、类型、所在文件名及行号。
10.根据权利要求8或9所述的系统,其中所述特征提取模块还被配置为:响应于对源程序的每次编译,在从源程序中提取与所述全局安全规则相关的信息时,对与所提取的信息进行哈希;以及
判断新生成的哈希值与该源程序所对应的中间文件的现有哈希值是否相同,如果相同,则不对该中间文件进行修改,否则将所提取的信息写入该中间文件以替换该中间文件中的原有信息。

说明书全文

安全规则检测方法和系统

技术领域

[0001] 本发明涉及程序静态分析技术,尤其涉及对程序代码进行安全规则检测的方法和系统。

背景技术

[0002] C/C++语言由于其高效性和灵活性而得到了广泛应用,但其在为开发人员提供对诸如内存、外设等系统底层灵活控制能的同时也带来了一些潜在的安全隐患(例如内存管理缺陷)。静态分析可以帮助开发人员在不执行代码的前提下检测到代码中存在的结构性错误、安全漏洞等问题。常用的基于静态分析的安全检测工具主要有CheckmarxCxSuite和Coverity。但是这些检测工具针对是通用C语言安全规则或规范的检测,在实际应用中缺乏灵活性,难以满足不同应用领域的安全规则要求。此外,对于多方合作的分布式软件开发项目,上述检测工具需要等待来自各方的所有待编译文件均完成编译后才能进行整体分析和全局性的安全规则检测。也就是说,在这样的大型软件开发过程中,需要在所有代码汇总完毕或者各单元模完成编译形成稳定代码后才能实施全局安全规则检测。由此待检测范围过大,时间成本很高,而且检测完成后纠正错误再提交的周期也很长,进一步拖慢了项目开发进度。

发明内容

[0003] 因此,本发明的目的在于克服上述现有技术的缺陷,提供一种灵活高效的安全规则检测方法和系统。
[0004] 本发明的目的是通过以下技术方案实现的:
[0005] 一方面,本发明提供了一种安全规则检测方法,包括:
[0006] 根据设定的全局安全规则在编译器前端从源程序中提取与所述全局安全规则相关的信息并将其保存在与该源程序对应的中间文件中;
[0007] 遍历所有中间文件中保存的信息以检测其是否符合所述全局安全规则;
[0008] 响应于检测到不符合所述全局安全规则的信息,发出指示以修改与该信息所在的中间文件对应的源程序。
[0009] 在上述方法中,所述全局安全规则可以为不允许标识符同名,与所述全局安全规则相关的信息包括标识符的名称、类型、所在文件名及行号。
[0010] 在上述方法中,还可包括响应于对源程序的每次编译,在从源程序中提取与所述全局安全规则相关的信息时,对与所提取的信息进行哈希;判断新生成的哈希值与该源程序所对应的中间文件的现有哈希值是否相同,如果相同,则不对该中间文件进行修改,否则将所提取的信息写入该中间文件以替换该中间文件中的原有信息。
[0011] 在上述方法中,还可包括通过在编译器中插桩的方式来从源程序中提取与所述全局安全规则相关的信息。
[0012] 在上述方法中,可以在编译器前端将源程序进行预处理、词法分析和语法分析之后,根据设定的全局安全规则从源程序中提取与所述全局安全规则相关的信息。其中所述源程序可以为c/C++语言编写,编译器可以为Gcc,插桩位置可以为编译器前端的pushdecl函数。
[0013] 在上述方法中,检测是否符合所述全局安全规则可以包括:
[0014] 建立以标识符名称为关键字、以由与该标识符名称同名的所有标识符关联的信息构成的链表或数组为键值的哈希表;
[0015] 对于每个中间文件中的标识符进行遍历,并执行下列操作:
[0016] 如果在所述哈希表中没有与该标识符同名的标识符,以该标识符的名称为关键字建立新的哈希表项,并将与该标识符关联的信息保存到与该新建立的哈希表项对应的链表或数组中;
[0017] 如果在所述哈希表中已有与该标识符同名的标识符,将与该标识符关联的信息保存到该哈希表中同名标识符对应的链表或数组中;
[0018] 对于其对应数组中元素个数大于1的每个哈希表项,基于每个数组元素中的信息分别发出指示以修改与该信息所在的中间文件对应的源程序。
[0019] 又一方面,本发明提供了一种安全规则检测系统,包括:
[0020] 特征提取模块,用于根据设定的全局安全规则在编译器前端从源程序中提取与所述全局安全规则相关的信息并将其保存在与该源程序对应的中间文件中;
[0021] 全局检测模块,用于遍历所有中间文件中保存的信息以检测其是否符合所述全局安全规则;
[0022] 警报模块,用于响应于检测到不符合所述全局安全规则的信息,发出指示以修改与该信息所在的中间文件对应的源程序。
[0023] 在上述系统中,所述全局安全规则可以为不允许标识符同名,与所述全局安全规则相关的信息包括标识符的名称、类型、所在文件名及行号。
[0024] 在上述系统中,所述特征提取模块还可被配置为:响应于对源程序的每次编译,在从源程序中提取与所述全局安全规则相关的信息时,对与所提取的信息进行哈希;
[0025] 判断新生成的哈希值与该源程序所对应的中间文件的现有哈希值是否相同,如果相同,则不对该中间文件进行修改,否则将所提取的信息写入该中间文件以替换该中间文件中的原有信息。
[0026] 与现有技术相比,本发明的优点在于:
[0027] 对于代码的全局安全规则检测可以与代码开发同步进行,不受制于软件开发各方的开发进度,能大大缩短研发周期;另外,对代码整体可编译性要求低,不需要对于庞大的代码工程进行耗时的完整编译,而是在一次编译的基础上,根据增量式编译的特性逐步对小规模代码进行检测,反馈给其余代码,可显著降低纠错所需要的工作量。附图说明
[0028] 以下参照附图对本发明实施例作进一步说明,其中:
[0029] 图1为根据本发明实施例的安全规则检测方法的流程示意图;
[0030] 图2为根据本发明实施例的安全规则检测系统的结构示意图。

具体实施方式

[0031] 为了使本发明的目的,技术方案及优点更加清楚明白,以下结合附图通过具体实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0032] C/C++语言由于其高效性和灵活性在越来越多的大型软件工程项目中得到了广泛应用。然而大部分安全检测工具通常是针对单个文件而不能跨文件实施全局安全规则检测。全局安全规则通常指需要覆盖整个工程文件的涉及安全性的编码规则。这类规则不仅在单一文件需要遵守,对于整个工程中的所有文件也必须遵守。在进行安全规则检测时需要针对这类规则对所有文件进行扫描才能完成。在多方合作的分布式软件开发项目中,现有安全检测工具难保证全局安全规则的检测效率。例如,以CheckmarxCxSuite为代表的源代码扫描工具,可以在针对单个代码文件进行检测,但是并不构建的跨越多个文件的全局性的词法分析和语法分析框架,并且也无法进行高规格的跨类型重名等全局检测。而诸如Coverity之类的可实施全局性安全检测的检测工具要求代码在通过整个编译过程并生成可执行文件后才进行安全规则的检测操作。在这种方式下,全局安全检测需要等待来自各方的所有待编译文件均通过前端、中端编译以及汇编过程,成功到达链接阶段方能进行。然而,在分布式开发的大型软件项目中,如果要求在各方所有代码汇总完毕或者各单元模块完成编译形成稳定代码后才能实施全局安全规则检测,会造成待检测范围过大,时间成本过高等问题,而且检测完成后纠正错误再提交的周期也很长,进一步拖慢了项目开发进度。此外,全局检测受阻于各个分布式研发单位的进度,代码检测在代码开发提交之后才能实施,彼此串行,研发周期长。
[0033] 现有的检测或编译工具只是针对代码的词法语法的正确性进行验证,注重检验其代码的编译通过性,但在安全规则方面涉及甚少,在实际应用中缺乏灵活性,难以满足不同应用领域的安全规则要求。例如,以标识符为例,在C语言安全规范中,允许不同函数中存在相同的变量名,以及在不同文件中存在相同变量名;但对于诸如航空航天、国防之类的应用安全级别要求严格的领域,标识符定义以及命名方面有着非常严格的要求。在这些领域的软件开发过程中不同模块、不同命名空间以及作用域中同名标识符易带来理解性混淆,引发不同程序员的误读,提升工程管理难度,提高软件维护效率。因此,同名检测在航空航天、国防等特殊领域具有更加重要的意义。然而,目前主流商用或者开源检测或编译工具并不支持类似的指定检测。
[0034] 在本发明的实施例中提供了一种新的非阻塞型全局安全规则检测方法,在开发过程中开发人员可以随时基于己方开发的源代码进行适当编译以将与待检测的安全规则相关的特征输出为中间文件,然后通过对来自分布式开发的各方的中间文件进行相关安全规则检测分析,来完成阶段性全局安全规则检测。在检测过程来自项目开发各方的不同模块生成的中间文件可在整个项目中不同模块内得到复用,一旦发现错误,可及时反馈各方进行纠正,并避免新代码上复现同类错误。这样的方法能及时对违反全局性编程规范的行为进行检测汇报,并及时通知相关方进行纠正,与各模块是否可以通过汇编、链接无关。该全局安全规则检测方法将检测过程与开发过程同步,无需等到全部代码提交后再进行,它可对部分、局部代码进行同步检测,不必受阻于各个分布式研发单位的进度,而是可与代码开发同步进行,即通过即编即测的方式完成阶段性的全局检测,从而可缩小错误检测和纠正的范围,降低全局规则检测时间,进而推进整个项目开发进度。
[0035] 图1给出了根据本发明一个实施例的安全规则检测方法的流程示意图。该方法主要包括根据设定的全局安全规则在编译器前端从源程序中提取与所述全局安全规则相关的信息并将其保存在与该源程序对应的中间文件中(步骤S1);遍历所有中间文件中保存的信息以检测其是否符合所述全局安全规则(步骤S2);以及响应于检测到不符合所述全局安全规则的信息,发出指示以修改与该信息所在的中间文件对应的源程序(步骤S3)。在该实施例中,采用“航天型号软件C语言安全子集GJB-5369”中与标识符同名相关的规则(如表1所示)作为全局安全规则,以对本发明实施例的全局安全规则检测方法的具体过程进行举例说明而非进行任何限制。应理解,在其他实施例中,也可以根据具体应用需求来设定其他的全局安全规则。
[0036] 表1
[0037]
[0038]
[0039] 更具体地,在步骤S1,根据设定的全局安全规则从源程序中提取与该全局安全规则相关的信息并将其保存在与该源程序对应的中间文件,以供后续检测过程使用。以上述不允许标识符同名的全局安全规则为例,所提取的与该全局安全规则相关的信息可包括诸如变量名、标号名、过程名、类型名、参数名之类的标识符的名称、类型、所在文件名及行号。后续检测过程可以对保存这些信息的中间文件而非源程序进行操作,从而不会对正常的代码开发过程造成任何影响。优选地,可以在编译器前端来提取与全局安全规则相关的信息。
例如,可根据设定的全局安全规则在编译器前端对源程序代码进行预处理、词法分析和语法分析之后,从源程序中提取上述的信息。通常可通过插桩的方式将收集与全局安全规则相关的信息并生成中间文件的代码插入到编译器前端。以GCC编译器为例,在GCC前端所有声明都会调用pushdecl函数,因此可将插桩位置放在该pushdecl函数中。后续检测阶段所针对的是由编译器生成的中间文件,不会影响编译过程。在严格意义上讲,在进行安全检测时,利用GCC对C语言编写的源程序进行编译,只需要进行到编译器前端词法和语法分析之后的插桩位置处生成中间文件即可,并不要求完成整个编译过程。在本发明的实施例中,全局安全规则检测过程与编译过程、开发过程是互相分离的,其可以在得到中间文件后的任意时间内进行,开发各方的不同模块生成的中间文件可在整个项目中得到复用。同时这也允许对部分不完整代码进行安全检测,可以使开发人员在各开发阶段随时从源程序提取与待检测的全局安全规则相关的信息,并不要求必须完成整个源程序的开发,也不要求在源程序完成整个编译过程(预处理、词法分析、语法分析、语义分析、汇编、链接等)之后才能进行安全检测。
[0040] 在又一个实施例中,为了减少检测开销、提高检测效率,可以针对每个源程序文件生成一个对应的中间文件,保存从源程序文件中提取的与全局安全规则相关的信息,例如标识符名字、类型、行号等内容。中间文件可以与对应源程序文件的文件名相同,仅后缀不同。并且可以对于源程序文件可以采用增量式编译的方式,对于未修改的源程序文件不会重新编译,只编译修改过的源程序文件,而对源程序文件的修改并不一定会导致生成不同的中间文件。因此在每个中间文件的生成过程中,可以同时生成与该中间文件对应的一个哈希值。例如在要在中间文件中保存的所有信息进行哈希来得到对应的哈希值。这样,当再次对源程序文件进行编译时,在从源程序中提取与全局安全规则相关的信息的同时,对所提取的信息进行哈希,将新生成的哈希值与该源程序所对应的中间文件的现有哈希值进行比较,若相同,则说明对该源程序文件的修改并不能影响中间文件的结果,故不必重新生成新的中间文件,也不必触发后续的重新检测操作。否则将所提取的信息写入该中间文件以替换该中间文件中的原有信息,并可以指示需要重新进行安全检测。其中计算文件的哈希值的算法例如可以是信息摘要算法(Message-Digest Algorithm 5,MD5)、诸如SHA1、SHA-256之类的安全哈希算法(Secure Hash Algorithm,SHA)、诸如CRC-32之类的循环冗余校验(Cyclic Redundancy Check,CRC)等等。
[0041] 继续参考图1,在得到利用编译器生成的中间文件之后,在步骤S2遍历所有中间文件中保存的信息以检测其是否符合设定的全局安全规则。如上文提到的,全局安全检测过程独立于开发和编译过程,可以在得到中间文件之后的任意时间段内进行。不仅可以对单个中间文件进行检测,还对来自参与整个软件项目的各开发方的所有中间文件进行检测,即遍历全部中间文件中保存的信息。仍以上述不允许标识符同名的全局安全规则为例,遍历各个中间文件内保存的信息,判断是否存在不符合表1所示的全局安全规则的相同名称的标识符,如果存在这样的标识符,可以在步骤S3发出相应指示以修改与该标识符所在的中间文件对应的源程序文件。
[0042] 优选地,可以维护一张全局哈希表结构来实现对于各个中间文件中信息的检测。例如可以建立以标识符名称为关键字(key)、以保存与该标识符名称同名的所有标识符关联的信息的链表或数组为键值(value)的哈希表结构。例如,可以结构体的形式表示与每个标识符相关的信息(例如类型、所在文件名、所在行号等),如果有多个同名标识符,则可以将与每个同名的标识符关联的信息作为一个结构体元素保存在哈希表中该标识符名称对应的结构体链表或数组中。又例如,可以序列化的字符串形式表示与每个标识符相关的信息,则可以将与多个同名的标识符中每一个标识符关联的信息作为一个字符串元素保存在哈希表中该标识符名称对应的字符串数组中。在对于各个中间文件中的标识符进行遍历时,对于每个标识符,先判断在该哈希表中有没有与该标识符同名的标识符,如果没有,则以该标识符的名称为关键字建立新的哈希表项,并将与该标识符关联的信息保存到由该新建立的哈希表项值对应的链表或数组中。每个哈希表项对应的链表或数组中至少有一个元素。如果在该哈希表中已有与该标识符同名的标识符,将与该标识符关联的信息保存到以哈希表中同名标识符对应的链表或数组中。这样在遍历完全部中间文件后,就建立起一张关于标识符的全局哈希表。以下面表2的源代码demo.c为例,其对应的中间文件demo.o中包括与标识符a、fun和b相关的信息,哈希表与该中间文件相关的信息如表3所示,其中有两个同名标识符a和两个同名标识符fun,与多个同名标识符中每一个标识符关联的信息保存在哈希表中该标识符名称对应的链表或数组中。
[0043] 表2
[0044]
[0045] 表3
[0046]
[0047] 在一些实施例中,为提高检测效率,还可以将所建立的哈希表保存在存储器中。当产生新的中间文件或者某些中间文件发生变化时,只需要对该全局哈希表的内容进行相应的修改即可,不需要重新遍历所有中间文件来重新建立该哈希表。对于新产生的中间文件,可以遍历该中间文件中的每个标识符,采用上文介绍的建立全局哈希表的步骤来将该中间文件中每个标识符及其相关信息插入至该全局哈希表中。对于发生变化的中间文件,可以采用下列步骤来维护和更新全局哈希表:
[0048] (1)响应于中间文件发生变化,提取涉及原有同一中间文件的所有标识符表项及其对应数据元素构成一个临时哈希表(可以称为比较器)。例如可以通过遍历全局哈希表来提取涉及原有同一中间文件的所有标识符表项及其对应数据元素。又例如,可以在中间文件被修改或被重写之前,按照上述建立全局哈希表的步骤遍历原有同一中间文件中的各标识符来构成与该中间文件对应的临时哈希表或比较器。
[0049] (2)遍历该发生变化的中间文件中的每个标识符,执行下列操作:
[0050] 21)如果比较器中不存在相同标识符,则在全局哈希表中以该标识符的名称为关键字建立新的哈希表项,并将与该标识符关联的信息保存到由该新建立的哈希表项对应的链表或数组中;
[0051] 22)如果比较器中存在同名的标识符,并且该标识符表项对应的数组中已经存在与该发生变化的中间文件的标识符对应的信息完全相同的元素(例如类型相同、所述文件名相同、行号相同等),则说明对于该发生变化的中间文件对应的源程序文件的修改没有涉及该标识符,由此无需对全局哈希表进行任何操作,此时可从比较器中删除该相同元素,并继续遍历该中间文件中的下一标识符;否则可以将该发生变化的中间文件的标识符对应的信息作为一个元素插入至全局哈希表中该同名标识符的表项对应的数组中,然后继续遍历该发生变化的中间文件中的下一标识符。
[0052] (3)在遍历完该发生变化的中间文件中的所有标识符时,如果比较器不为空,即仍然存在部分标识符表项及其对应的数组元素,这表示这些标识符及其相关信息在该发生变化的中间文件对应的源程序文件中已经由于被删除或被修改而不再存在,因此可以从全局哈希表中找到比较器中的剩余元素来逐一删除,如果全局哈希表中某个表项对应的数组为空,则删除该哈希表项,这样就完成响应于中间文件发生变化而进行的全局哈希表的更新和维护。
[0053] 当建立该全局哈希表或完成对全局哈希表的更新时,可以遍历该全局哈希表,对于其中对应数组中元素个数大于1的每个哈希表项,基于每个数组元素中的信息分别向有关的各方发出指示以修改与该信息所在的中间文件对应的源程序,以使其符合设定的全局安全规则。
[0054] 图2给出了根据本发明一个实施例的安全规则检测系统,其包括特征提取模块、全局检测模块和警报模块。其中特征提取模块可以采用如上文中介绍的方式根据设定的全局安全规则在编译器前端从源程序文件中提取与所设定的全局安全规则相关的信息并将其保存在与该源程序对应的中间文件中。在又一个实施例中,该特征提取模块可以进一步进行中间文件的复用,例如在每次对于源程序进行编译,从源程序中提取与所述全局安全规则相关的信息时,对与所提取的信息进行哈希,然后判断新生成的哈希值与该源程序所对应的中间文件的现有哈希值是否相同,如果相同,则不对该中间文件进行修改,否则将所提取的信息写入该中间文件以替换该中间文件中的原有信息。
[0055] 全局检测模块独立于具体的编译器及程序开发工具,可以在得到中间文件后的任意时间内进行安全检测,例如采用如上文结合图1介绍的方式遍历所有中间文件中保存的信息以检测其是否符合全局安全规则。例如建立全局哈希表,对于全局哈希表中各哈希表项进行遍历,如果其对应链表或数组中存在多个元素,则将这些元素保存至异常数组中。接着,警报模块可以根据异常数组中的数据,发出指示以修改对应的源程序。在该安全检测过程中,开发各方的不同模块生成的中间文件可在整个项目中得到复用。一旦发现有不符合安全规则的信息,可通过警报模块发出指示以修改与该信息所在的中间文件对应的源程序,从而及时反馈各方进行纠正,并避免新代码上复现同类问题。这样的方法能及时对违反全局性编程规范的行为进行检测汇报,并及时通知相关方进行纠正,缩小了错误检测和纠正的范围,降低全局规则检测时间,进而推进整个项目开发进度。在又一个实施例中,为提高检测效率,全局检测模块还可以对所建立的哈希表进行持久化操作,例如将其保存在存储器中;以及进行相应内容的更新和维护。例如,当产生新的中间文件或者某些中间文件发生变化时,从存储器读取哈希全局表并如上文所介绍的对该全局哈希表的内容进行相应的修改。
[0056] 从上述实施例可以看出,本发明实施例的安全检测方法提供的是非阻塞的全局安全检测方案,检测过程不影响正常的开发和编译过程,在纵向上对单个源程序文件进行编译产生与待检测的全局安全规则相关的信息输出为中间文件;在横向上,可随时基于来自项目各方的中间文件检测相关信息是否符合全局安全规则,从而完成阶段性全局规则检测。编译只需进行到编译器前端生成中间文件即可,检测过程可以在得到中间文件后的任意时间内进行,不同模块生成的中间文件可在整个项目中不同模块内得到复用。检测过程中一旦发现错误,可及时反馈各方进行纠正,并避免新代码上复现同类错误。由此缩小了错误检测和纠正的范围,降低全局规则检测时间,将检测过程与研发过程同步,从而推进研发进度。
[0057] 虽然本发明已经通过优选实施例进行了描述,然而本发明并非局限于这里所描述的实施例,在不脱离本发明范围的情况下还包括所做出的各种改变以及变化。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈