CN107908405A - 代码静态审核装置及方法 - Google Patents

代码静态审核装置及方法 Download PDF

Info

Publication number
CN107908405A
CN107908405A CN201711142622.8A CN201711142622A CN107908405A CN 107908405 A CN107908405 A CN 107908405A CN 201711142622 A CN201711142622 A CN 201711142622A CN 107908405 A CN107908405 A CN 107908405A
Authority
CN
China
Prior art keywords
code
variable
rule
module
regular expression
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201711142622.8A
Other languages
English (en)
Inventor
黄海虎
黄志文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Snail Digital Technology Co Ltd
Original Assignee
Suzhou Snail Digital Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Suzhou Snail Digital Technology Co Ltd filed Critical Suzhou Snail Digital Technology Co Ltd
Priority to CN201711142622.8A priority Critical patent/CN107908405A/zh
Publication of CN107908405A publication Critical patent/CN107908405A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Machine Translation (AREA)

Abstract

本发明公开了一种代码静态审核装置及审核方法,其中审核装置包括:分析模块:分析需要检查项的结构和特征;变量分割模块:根据结构用词法规则,分割出需要检查项的变量;检测规则生成模块:根据需要检查项的特征及变量,建立用作检测规则的正则表达式;检查规则判断模块:通过检测规则生产模块建立的正则表达式判断变量分割模块分割出的变量是否符合检查规则;以及逻辑保护判断模块:对不符合检查规则的代码的上下文进行扫描,判断是否有逻辑保护。与现有技术相比,本发明代码审核方法,不用编译代码或关联多个文件就可以审核代码,就更高效的去发现代码问题和解决代码问题。

Description

代码静态审核装置及方法
技术领域:
本发明涉及一种任何文件无须关联任何其他文件或编译就可以直接静态代码审核的方法及装置。
背景技术:
市面上有不少代码审核工具,虽然支持了很多功能但其使用条件都需要代码工程需要编译通过后才能进行代码审核,市面上说的静态审核也存在这样的问题,需要关联多个文件及编译才能审核。无法做到任何一个文件或文件夹无需关联任何东西都可以审核。也无法提供开发者和审核人员在任何时候都能快速检测代码问题的情况。并且实际使用中开发者或审核人员更关心他想要审核的文件(指代码文件)或文件夹(包括很多代码文件的文件夹),而不是要审核所有文件或整个工程。
发明内容:
本发明所要解决的技术问题在于克服审核文件时需要关联文件或编译通过才能审核代码的弊端,提供一种随时都可以对任何文件审核的方法,让审核人员没有任何工程环境限制去审核别人代码,让开发者在开发过程中随时检查自身代码。对使用要求低、体验简单又高效。
本发明通过以下技术方案来解决上述问题:
一种代码静态审核装置,其特征在于,包括:
分析模块:分析需要检查项的结构和特征;
变量分割模块:根据结构用词法规则,分割出需要检查项的变量;
检测规则生成模块:根据需要检查项的特征及变量,建立用作检测规则的正则表达式;
检查规则判断模块:通过检测规则生产模块建立的正则表达式判断变量分割模块分割出的变量是否符合检查规则;
以及
逻辑保护判断模块:对不符合检查规则的代码的上下文进行扫描,判断是否有逻辑保护,对进行逻辑保护的则排除,对没有逻辑保护的输出。
所述检测规则生成模块建立正则表达式的方法为:先用把分析模块分析出的特征和变量分割模块分割出的变量组合建立一个实例特征,再对照这个实例特征用正则语法设计出满足这个实例特征的正则表达式。
一种代码静态审核方法,其特征在于,包括如下步骤:
第一步、由需求提供的检查的项,分析需要检查的项的特征;
第二步、根据编译原理里面的词法规则将需要检查的项分割成不同的变量;
第三步、建立包含特征、变量的正则表达式,通过建立的正则表达式判断被分割的变量是否符合检查规则;
第四步、对不符合检查规则的变量的代码上下文进行扫描是否有逻辑保护,对进行逻辑保护的则忽略,对没有逻辑保护的则转至第五步处理;
第五步、把没有逻辑保护的及上下文输出。
所述第三步建立正则表达式的方法为:先用把所述第一步中分析出的特征和所述第二步中变量组合建立一个实例特征再对照这个实例特征用正则语法设计出满足这个实例特征的正则表达式。
所述第二步中变量为一串字符串,该字符串由字母或下划线开头,字符串第二位开始由字母、下划线或数字组成。
所述第四步中,采用宏包含规则检查是否有逻辑保护。
所述第五步中,把没有逻辑保护的及上下文输出到工具或平台上,开发者和审核者根据展示在工具或平台的内容进行修复代码。
与现有技术相比,本发明通过对检查项代码的结构和特征进行分析,接着通过词法规则进行分割,然后与之前分析的特征信息建立正则表达式,再使用此正则表达式对代码进行扫描判断,得出可疑的项,最后再次利用一些宏做过滤,最后得出有问题的代码项,这样的检查方法可以不用编译代码或关联多个文件就可以审核代码,就更高效的去发现代码问题和解决代码问题。
附图说明
图1为本发明代码审核方法流程示意图。
具体实施方式
下面结合附图,对本发明作详细说明。
如图1所示,本发明代码静态审核方法,包括如下步骤:
1、由需求提供的检查的项,对检查项分析其结构和特征;
2、用词法规则分割检测项对应的变量;
3、结合步骤1分析的特征、步骤2分割出的变量,用正则语法建立正则表达式,用此正则表达式来判断代码,把没有问题的排出,有问题的进入到下一步;
4、再用一些宏保护对有问题的项的上下扫描判断,把做保护的排除,没有做保护的进入到下一步处理;
5、把没有保护的变量及上下文输出。
实施例1
针对【指针未保护】检查项做示例,审核方法具体为:
第一步:分析检查项:根据实际情况,对指针的定义结构一般都是【类型*指针变量名】这样的格式,出现空指针时有共同的特征,也就是此【指针变量】在使用前没有做保护。
第二步:我们需要检查出来哪些是指针变量名,根据词法规则,第一个出现的是*符号,后面跟着一串(由字母或下划线开头第二位开始由字母、下划线、数字等组成)字符串,此字符串就是需要的指针变量名。比如扫描到这样的int*pXXX代码语句,根据上面词法描述,扫描到*后则开始记录第一个,并扫描*后面出现一连串字符串,此pXXX这个字符串是符合“由字母或下划线开头第二位开始由字母、下划线、数字等组成”的词法规则,所以分割出来指针变量为pXXX。
第三步:从第二步找出来的指针变量比如pXXX,与某种正则表达式进行结合,比如if[\s]*[(][\s]*[!]?(pXXX)[)],此种结合表达式是检查类似后面这种规则:if(pXXX)或if(!pXXX)。当然不限于此规则,因为实际代码判断指针变量的情况有多种,根据实际分析的情况会组合多种正则表达来判断检查。用这些规则排除没有问题的指针变量,留下可疑的指针变量。
第四步:把第三步扫出来的有问题的指针变量,再进行宏包含规则检查,比如类似用NULL_RETURN(),满足这种规则的则忽略,不满足的则到第五步。
第五步:把没有排除的输出到工具或平台上供开发者或评审人员分析和修改。
实施例2
针对【除数保护】检查项作示例,审核方法具体为:
第一步:分析检查项:根据实际情况,对除数的定义结构一般都是【/除数变量名】这样的格式,出现除数保护问题有共同的特征,也就是此【除数变量】在使用前没有做是否为0的判断。
第二步:我们需要检查出哪些是除数,根据词法规则,第一个出现的/符号,后面跟着的一串(由字母或下划线开头第二位开始由字母、下划线、数字等组成)字符串,此字符串就是需要的除数变量。比如扫描到这样的temp=nMax/nCount代码语句,根据上面词法描述,扫描到/后则开始记录第一个,并扫描/后面出现一连串字符串,此nCount这个字符串是符合“由字母或下划线开头第二位开始由字母、下划线、数字等组成”的词法规则,所以分割出来除数变量为nCount。
第三步:从第二步找出来的除数变量比如nCount,与某种正规则表达进行结合,比如(nCount[\s]*==[\s]*0)|(0[\s]*==[\s]*nCount),此种结合表达式检查类似后面这种规则:nCount==0或0==nCount等。当然不限于此规则,因为实际代码判断除数变量是否为0的情况有多种,这边根据实际分析的情况会组合多种正则表达来判断检查。用这些规则排除没有问题的除数变量,留下可疑的除数变量。
第四步:把第三步扫出来的有问题的除数变量,再进行宏包含规则检查,比如类似用RAND_MAX或PI_4,满足这种规则的则忽略,不满足的则到第五步。
第五步:把没有排除的输出到工具或平台上供开发者或评审人员分析和修改。
实施例3
针对【数组下标越界保护】检查项作示例,审核方法具体为:
第一步:分析检查项:根据实际情况,对下标的定义结构一般是【[下标变量名]】这样的格式,出现下标越界保护问题有共同的特征,也就是此【下标变量】在使用前面没有做值范围判断。
第二步:我们需要检查出哪些是下标变量,根据词法规则,第一个出现的[符号,后面跟着的一串(由字母或下划线开头第二位开始由字母、下划线、数字等组成)字符串,外加一个]符号结束,此字符串就是需要的下标变量名。比如扫描到这样的vEveryKom[index]代码语句,根据上面描述,扫描到[符号后开始记录第一个,并扫描[后面出现的一连串字符串,并以]符号结束,此index这个字符串符合“由字母或下划线开头第二位开始由字母、下划线、数字等组成”的词法规则,并也符合其后面是]符号的规则,所以分割出来的下标变量是index。
第三步:第二步找出来的下标变量比如index,与某种正规则表达式进行结合,比如index[\s]*(>=|<)[\s]*[\w]+,此种结合表达式检查类似后面这种规则index>=XXX&&index<SSS。当然不限于此规则,因为实际代码判断值范围的情况有多种,这边根据实际分析的情况会组合多种正则表达来判断检查。用这些规则排除没有问题的下标变量,留下可疑的下标变量。
第四步:把第三步扫出来的有问题的下标变量,再进行宏包含规则检查,比如类似用RELEASEASSERT(),满足这种规则的则忽略,不满足的则到第五步。
第五步:把没有排除的输出到工具或平台上供开发者或评审人员分析和修改。
这些检查项的特征进行分析时会以多种情况来分析及总结出多种特征,用排除方式及包含方式相等检查出有问题的内容。这种发明方法可以达到无需关联其他文件或编译关联等,就可以给开发者和审核人员进行审核其关心的代码文件或文件夹,从而能快速的发现问题,进而帮助其提前解决存在的隐患。
实施例4
结合下面一段代码并把上面三个实例结合一起做具体描述。
做代码审核前,我们需要知道提供检查哪几个项,这边提供要检查的三个项:
第一个是检查出存在指针未保护的情况;
第二个检查出除数未保护的情况;
第三个检查出下标未做越界保护的情况。
那如何才能检查出来三个检查项的情况,
第一步分析其结构和其特征如下:
要检查出第一个出现的情况,则需要先确定哪个是指针变量,再检查这个指针变量在使用前是未被保护的;
同样要检查出第二个出现的情况,则需要先确定哪个是除数变量,再检查这个除数在使用前是未与0做判断的;
同样要检查出第三个出现的情况,则需要先确认哪个是下标变量,再检查这个下标变量是未被做越界保护的。
(实施例1)第二步分割变量
按照实施例1第二步的方式来分割出指针变量,即对上述代码进行扫描,从第1行第一个字符开始扫描,我们要先寻找“*”,第2行、第4行、第27行、第28行发现了“*”,这时继续使用(由字母或下划线开头第二位开始由字母、下划线、数字等组成)词法规则扫“*”后面的字符,发现上面四行都满足可以分割指针变量的要求,但实际只有27、28行才是指针变量,这个时候我们完善词法规则,把(由字母或下划线开头第二位开始由字母、下划线、数字等组成)这个后面增加一个结束符“=”等号,用此新的词法规则可以过滤掉2、4行,剩下27、28行的,同时分割出指针变量分别是27行的pNameA和28行的pNameB。
(实施例1)第三步组合检查用正则表达式
先根据指针保护特征与指针变量组合一个实例如36行的if(pNameA),扩展一下实例if(!pNameA),通过此两个实例,用正则规则编写成需要正则表达式if[\s]*[(][\s]*[!]?(pNameA)[)],此正则表达式用到的正则规则由“\s”匹配任意的空白符(空格、制表符、换页符等),”[]”字符集合、匹配所包含的任意一个字符,”*”匹配前面的零次或多次的子表达式,“?”匹配前面的零次或一次的子表达式,“()”匹配括号内的内容并获取这一匹配,所以整个if[\s]*[(][\s]*[!]?(pNameA)[)]正则表达的意思是以“if”开头后面匹配零次或多次的空白符,再由“(”拼接,后面匹配零次或多次的空白符,再拼接零次或一次的“!”,然后拼接pNameA,最后拼接“]”,并扫描时应该一行代码返回一个结果。用此正则表达式扫描代码,会发现36行的是满足这个正则表达式的,同样道理的pNameB组合的正则表达式为if[\s]*[(][\s]*[!]?(pNameB)[)],但经过扫描代码没有检查出有满足的。所以经过此步排除了没有问题的指针变量pNameA,留下可疑的指针变量pNameB。
(实施例1)第四步再一次用宏扫描
在第三步里面检查出了有问题的变量pNameB,再与也判断宏组合成NULL_RETURN(pNameB),再进行代码扫描,发现没有找到满足的,此时就确定pNameB是有问题的,即pNameB存在指针未保护的情况,把pNameB转至第五步处理。
(实施例1)第五步把有问题的输出
在第四步的pNameB和其对应行号28等信息一起输出到平台上供开放人员或评审人员分析和修改。
(实施例2)第二步分割变量
按照实施例2第二步的方式来分割出除数变量,即对上述代码进行扫描,从第1行第一个字符开始扫描,我们要先寻找“/”,第17行、第22行发现了“/”,这时继续使用(由字母或下划线开头第二位开始由字母、下划线、数字等组成)词法规则扫“/”后面的字符,发现上面两行都满足可以分割除数变量的要求,分割出除数变量分别是17行的nEngCount和22行的nMathCount。
(实施例2)第三步组合检查用正则表达式
先根据除数保护特征与除数变量组合一个实例如14行的0==nEngCount,扩展一下实例nEngCount==0,通过此两个实例,用正则规则编写成需要正则表达式(nEngCount[\s]*==[\s]*0)|(0[\s]*==[\s]*nEngCount),此正则表达式用到的正则规则由“()”匹配括号内的内容并获取这一匹配,“\s”匹配任意的空白符(空格、制表符、换页符等),”[]”字符集合、匹配所包含的任意一个字符,”*”匹配前面的零次或多次的子表达式,“|”匹配此符号前后的子表达式,所以整个(nEngCount[\s]*==[\s]*0)|(0[\s]*==[\s]*nEngCount)正则表达的意思是包括两部分由“|”区分,再去掉“()”后,前部分:nEngCount开头,后面匹配零次或多次的空白符,再拼接==,之后再匹配零次或多次的空白符,以0字符结束;后部分:0字符开头,后面匹配零次或多次的空白符,再拼接==,之后再匹配零次或多次的空白符,以nEngCount字符串结束,并扫描时应该一行代码返回一个结果。用此正则表达式扫描代码,会发现14行的是满足这个正则表达式的,同样道理的nMathCount组合的正则表达式为(nMathCount[\s]*==[\s]*0)|(0[\s]*==[\s]*nMathCount),但经过扫描代码没有检查出有满足的。所以经过此步排除了没有问题的除数变量nEngCount,留下可疑的除数变量nMathCount。
(实施例2)第四步再一次用宏扫描
在第三步里面检查出了有问题的变量nMathCount,判断是否是宏PI_4等,再进行代码扫描,发现没有找到满足的,此时就确定nMathCount是有问题的,即nMathCount存在除数未与0做判断的情况,把nMathCount转至第五步处理。
(实施例2)第五步把有问题的输出
在第四步的nMathCount和其对应行号22等信息一起输出到平台上供开放人员或评审人员分析和修改。
(实施例3)第二步分割变量
按照实施例3第二步的方式来分割出下标变量,即对上述代码进行扫描,从第1行第一个字符开始扫描,我们要先寻找“[”,第2行、第9行、第34行发现了“[”,这时继续使用(由字母或下划线开头第二位开始由字母、下划线、数字等组成)词法规则扫“[”后面的字符,并以“]”结束,发现上面三行都满足可以分割下标变量的要求,分割出下标变量分别是2行的STU_COUNT、9行的nClassNo和34行的nClassNoA。并根据实际的特征下标变量不会是全部大写的字母和下划线组成,可以排除2行的STU_COUNT,剩下9行的nClassNo和34行的nClassNoA
(实施例3)第三步组合检查用正则表达式
先根据下标保护特征与下标变量组合一个实例如32行的nClassNoA>=0&&nClassNoA<STU_COUNT,通过此实例,用正则规则编写成需要正则表达式nClassNoA[\s]*(>=|<)[\s]*[\w]+,此正则表达式用到的正则规则由“\s”匹配任意的空白符(空格、制表符、换页符等),”[]”字符集合、匹配所包含的任意一个字符,”*”匹配前面的零次或多次的子表达式,“()”匹配括号内的内容并获取这一匹配,“|”匹配此符号前后的子表达式,“\w”匹配字母或数字或下划线,所以整个nClassNoA[\s]*(>=|<)[\s]*[\w]+正则表达的意思是nClassNoA开头,后面匹配零次或多次的空白符,再拼接“>=”或“<”,之后匹配零次或多次的空白符,再匹配字母或数字或下划线组成的字符串,并扫描时应该一行代码返回两个结果。用此正则表达式扫描代码,会发现32行的代码会返回2个结果从而满足这个正则表达式的,同样道理的nClassNo组合的正则表达式为nClassNo[\s]*(>=|<)[\s]*[\w]+,但经过扫描代码检查只返回了一个结果还是没有满足的。所以经过此步排除了没有问题的下标变量nClassNoA,留下可疑的下标变量nClassNo。
(实施例3)第四步再一次用宏扫描
在第三步里面检查出了有问题的变量nClassNo,判断是否是宏RELEASEASSERT(nClassNo)等,再进行代码扫描,发现没有找到满足的,此时就确定nClassNo是有问题的,即nClassNo存在下标未范围判断的情况,把nClassNo转至第五步处理。
(实施例3)第五步把有问题的输出
在第四步的nClassNo和其对应行号9等信息一起输出到平台上供开放人员或评审人员分析和修改。
最后经过上面几个实例的第五步输出,上述代码的审核出来的问题有:
9行的下标nClassNo未做范围判断;
22行的除数nMathCount未做0判断;
28行的指针pNameB未做保护。

Claims (7)

1.一种代码静态审核装置,其特征在于,包括:
分析模块:分析需要检查项的结构和特征;
变量分割模块:根据所述分析模块分析出的结构用词法规则,分割出需要检查项的变量;
检测规则生成模块:根据需要检查项的特征及变量,建立用作检测规则的正则表达式;
检查规则判断模块:通过检测规则生产模块建立的正则表达式判断变量分割模块分割出的变量是否符合检查规则;
以及逻辑保护判断模块:对不符合检查规则的代码的上下文进行扫描,判断是否有逻辑保护,对进行逻辑保护的则排除,对没有逻辑保护的输出。
2.根据权利要求1所述的代码静态审核装置,其特征在于,所述检测规则生成模块建立正则表达式的方法为:先用把分析模块分析出的特征和变量分割模块分割出的变量组合建立一个实例特征,再对照这个实例特征用正则语法设计出满足这个实例特征的正则表达式。
3.一种代码静态审核方法,其特征在于,包括如下步骤:
第一步、由需求提供的检查的项,分析需要检查的项的结构和特征;
第二步、根据编译原理里面的词法规则将需要检查的项分割成不同的变量;
第三步、建立包含特征、变量的正则表达式,通过建立的正则表达式判断被分割的变量是否符合检查规则;
第四步、对不符合检查规则的变量的代码上下文进行扫描是否有逻辑保护,对进行逻辑保护的则排除,对没有逻辑保护的则转至第五步处理;
第五步、把没有逻辑保护的及上下文输出。
4.根据权利要求3所述的代码静态审核方法,其特征在于,所述第三步建立正则表达式的方法为:先用把所述第一步中分析出的特征和所述第二步中变量组合建立一个实例特征再对照这个实例特征用正则语法设计出满足这个实例特征的正则表达式。
5.根据权利要求4所述的代码静态审核方法,其特征在于,所述第二步中变量为一串字符串,该字符串由字母或下划线开头,字符串第二位开始由字母、下划线或数字组成。
6.根据权利要求4所述的代码静态审核方法,其特征在于,所述第四步中,采用宏包含规则检查是否有逻辑保护。
7.根据权利要求4所述的代码静态审核方法,其特征在于,所述第五步中,把没有逻辑保护的及上下文输出到工具或平台上,开发者和审核者根据展示在工具或平台的内容进行修复代码。
CN201711142622.8A 2017-11-17 2017-11-17 代码静态审核装置及方法 Pending CN107908405A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711142622.8A CN107908405A (zh) 2017-11-17 2017-11-17 代码静态审核装置及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711142622.8A CN107908405A (zh) 2017-11-17 2017-11-17 代码静态审核装置及方法

Publications (1)

Publication Number Publication Date
CN107908405A true CN107908405A (zh) 2018-04-13

Family

ID=61846069

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711142622.8A Pending CN107908405A (zh) 2017-11-17 2017-11-17 代码静态审核装置及方法

Country Status (1)

Country Link
CN (1) CN107908405A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109358564A (zh) * 2018-09-19 2019-02-19 珠海格力电器股份有限公司 一种检测组态软件的方法及装置、计算机可读存储介质
CN109491884A (zh) * 2018-09-26 2019-03-19 平安普惠企业管理有限公司 代码性能检测方法、装置、计算机设备和介质
CN109739507A (zh) * 2018-12-28 2019-05-10 睿驰达新能源汽车科技(北京)有限公司 一种代码持续集成方法和代码持续交付方法
CN110674495A (zh) * 2019-09-03 2020-01-10 Xc5 香港有限公司 一种数组越界访问的检测方法、装置及设备
CN111858294A (zh) * 2019-12-02 2020-10-30 北京嘀嘀无限科技发展有限公司 数据流获取方法、获取装置、计算机设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102929596A (zh) * 2012-09-21 2013-02-13 华为技术有限公司 代码排查方法和相关装置
CN103793652A (zh) * 2012-10-29 2014-05-14 广东电网公司信息中心 一种基于静态分析的应用系统代码安全扫描装置
US20140282448A1 (en) * 2013-03-14 2014-09-18 Microsoft Corporation Operating system support for contracts
CN104965788A (zh) * 2015-07-03 2015-10-07 电子科技大学 一种代码静态检测方法
CN105389195A (zh) * 2015-10-27 2016-03-09 北京理工大学 一种基于代码替换和正则表达式的静态分析工具改进方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102929596A (zh) * 2012-09-21 2013-02-13 华为技术有限公司 代码排查方法和相关装置
CN103793652A (zh) * 2012-10-29 2014-05-14 广东电网公司信息中心 一种基于静态分析的应用系统代码安全扫描装置
US20140282448A1 (en) * 2013-03-14 2014-09-18 Microsoft Corporation Operating system support for contracts
CN104965788A (zh) * 2015-07-03 2015-10-07 电子科技大学 一种代码静态检测方法
CN105389195A (zh) * 2015-10-27 2016-03-09 北京理工大学 一种基于代码替换和正则表达式的静态分析工具改进方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109358564A (zh) * 2018-09-19 2019-02-19 珠海格力电器股份有限公司 一种检测组态软件的方法及装置、计算机可读存储介质
CN109358564B (zh) * 2018-09-19 2022-05-20 珠海格力电器股份有限公司 一种检测组态软件的方法及装置、计算机可读存储介质
CN109491884A (zh) * 2018-09-26 2019-03-19 平安普惠企业管理有限公司 代码性能检测方法、装置、计算机设备和介质
CN109739507A (zh) * 2018-12-28 2019-05-10 睿驰达新能源汽车科技(北京)有限公司 一种代码持续集成方法和代码持续交付方法
CN110674495A (zh) * 2019-09-03 2020-01-10 Xc5 香港有限公司 一种数组越界访问的检测方法、装置及设备
CN110674495B (zh) * 2019-09-03 2021-07-09 Xc5 香港有限公司 一种数组越界访问的检测方法、装置及设备
CN111858294A (zh) * 2019-12-02 2020-10-30 北京嘀嘀无限科技发展有限公司 数据流获取方法、获取装置、计算机设备及存储介质

Similar Documents

Publication Publication Date Title
CN107908405A (zh) 代码静态审核装置及方法
RU2251737C2 (ru) Способ автоматического определения языка распознаваемого текста при многоязычном распознавании
CN110414219B (zh) 基于门控循环单元与注意力机制的注入攻击检测方法
CN106934275B (zh) 一种基于个人信息的口令强度评测方法
KR101813683B1 (ko) 커널 rdr을 이용한 태깅 말뭉치 오류 자동수정방법
CN103440252B (zh) 一种中文句子中并列信息提取方法及装置
CN106156017A (zh) 信息识别方法和信息识别系统
CN103679030B (zh) 一种基于动态语义特征的恶意代码分析检测方法
CN110209795A (zh) 评论识别方法、装置、计算机可读存储介质和计算机设备
CN106815208A (zh) 法律裁判文书的解析方法及装置
CN105868630A (zh) 恶意pdf文档检测方法
CN105956180A (zh) 一种敏感词过滤方法
CN112989414B (zh) 基于宽度学习的移动业务数据脱敏规则生成方法
KR101818006B1 (ko) 행위 정규화를 통한 악성코드 고속탐지 및 시각화 방법 및 이를 이용한 장치
CN108363691A (zh) 一种用于电力95598工单的领域术语识别系统及方法
CN112001170A (zh) 一种识别经过变形的敏感词的方法和系统
CN107943514A (zh) 一种软件文档中核心代码元素的挖掘方法及系统
CN106407324A (zh) 联系方式识别方法及装置
Rigaud et al. What do we expect from comic panel extraction?
CN110989991B (zh) 检测应用程序中源代码克隆开源软件的方法及系统
CN110399496A (zh) 一种基于cr决策树的知识图谱构建方法
CN115952503B (zh) 融合黑白灰安全检测技术的应用安全测试方法及系统
CN106294315B (zh) 基于句法特性与统计融合的自然语言谓语动词识别方法
CN110502745A (zh) 文本信息评价方法、装置、计算机设备和存储介质
CN106650450A (zh) 基于代码指纹识别的恶意脚本启发式检测方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20180413

RJ01 Rejection of invention patent application after publication