描述:

(1)输入待扫描的源程序文件或者文件夹,分析输入的文件和文件夹,识别出其中的所有源程序文件,建立一个待扫描文件列表,下一步就可以从待扫描文件列表中有序的读取带扫描文件进行扫描。

(2)当词法分析工具得到一行待分析文件的源代码的同时,从危险函数数据库中提取一个等级的危险函数与该行源代码进行匹配,这就是初步分析。

(3)如果在初步分析中匹配成功,那么词法分析工具将使该行代码进入下一步的分类特征分析,否则,返回继续进行下一行的初步分析。

(4)词法分析工具不断的读取源代码按照设定的危险等级进行分析,直到最后生成报告,以便开发者进行改进。

Cqual:采用语义/值流分析,该工具的功能即是查找格式化字符串缺陷,const数据类型以及结构体的检查等。其分析流程如下:

(1)用户输入源文件和格配置文件,作为程序的输入。Cqual内置了常用的分析模式(格配置),在分析常用缺陷时,直接使用其自带的配置文件

(2)Cqual前端对C文件进行词法分析和语法分析,生成抽象语法树

(3)遍历抽象语法树,根据类型推断系统,生成限定子约束关系。Cqual在分析之初,会为每个变量创建一个同名的限定子变量。通过遍历语法树,Cqual能够执行高效的流不敏感的类型推断,从而检查推断出剩余的类型限定子并检查一致性。在执行推断的时候,Cqual会产生限定子和限定子变量之间的一系列约束。

(4)使用约束求解算法对约束不等式组进行求解。如果不等式组没有解,则Cqual认为发现错误,重新遍历一遍约束图,输出对用户最有用的错误路径信息然后退出。否则,它认为源程序没有缺陷,直接退出。Cqual的一个优势在于发现错误时,能够输出合理的错误路径,这有利于用户快速定位错误。

Cqual采用的是覆盖全部路径,因此也存在误报

splint:是一个动态检查C语言程序安全弱点和编写错误的程序.splint会进行多种常规检查,包括未使用的变量,类型不一致,使用未定义变量,无法执行的代码,忽略返回值,执行路径未返回,无限循环等错误。

32/3<123>

c 语言 测试工具,几种C/C++语言安全检测工具介绍相关推荐

  1. c语言 测试有哪种天赋,c语言是指什么

    c语言是指什么 多元性向潜能发展测验是一种性向测验,"性向"是指学**某种知识或技能的潜能,和学生目前的个人程度有关,因此可用来预测个人未来在某些相关知识技能的学**成效.中学多远 ...

  2. c语言股票软件开发,一种使用Objcctivc语言开发的股票软件系统的制作方法

    本法发明基于移动IOS,使用Objcctivc-C语言技术,涉及一种使用Objcctivc语言开发的股票软件系统. 背景技术: 随着人们对移动炒股的需求越来越高,手机炒股软件也在不断进步,目前市场上充 ...

  3. python是面向什么的计算机程序设计语言_Python是一种计算机程序设计语言,python到底该怎么学习...

    1.首先我们要了解python是什么: Python是一种计算机程序设计语言.是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell)随着版本的不断更新和语言新功能的添加,越来越多被用 ...

  4. linux 系统硬件信息检测工具,9种在Linux系统上检测CPU信息的工具

    在Linux中,有许多命令行或基于GUI的工具就能来展示你的CPU硬件的相关具体信息.下面是学习啦小编收集整理的9 种在 Linux 系统上检测 CPU 信息的工具,希望对大家有帮助~~ 9 种在 L ...

  5. mysql是面向对象的语言吗_php一种面向对象的语言,那么什么是面向对象呢?

    php一种面向对象的语言,那么什么是面向对象呢? 传统的面向过程的编程思想: 相信很多人第一次接触编程都是c语言,c语言就是非常典型的面向过程的编程语言,将要实现的功能描述为一个从开始到结束的连续的& ...

  6. php属于哪种语言,php是哪种类型的语言

    php是哪种类型的语言? php是弱类型语言. PHP是一种简单的,面向对象的,解释型的,健壮的,安全的,性能非常之高的,独立于架构的,可移植的,动态的脚本语言.PHP具有和JAVA类似的Class关 ...

  7. c语言限速编程,一种基于c语言的列车限速曲线计算方法和装置的制造方法

    一种基于c语言的列车限速曲线计算方法和装置的制造方法 [技术领域] [0001]本发明涉及一种基于C语言的列车限速曲线的计算方法和装置,属于计算机自动化技术领域. [背景技术] [0002]目前现有的 ...

  8. tg测试软件,TG Pro for mac(硬件温度检测工具)

    原标题:TG Pro for mac(硬件温度检测工具) 每台Mac TG Pro可以在所有Mac型号上使用,无论它是2008年之前的旧型号还是2019年之后的全新型号.它甚至都可以在装有T2安全芯片 ...

  9. 西门子s5 通讯测试软件,几种常用的S5编程软件简要介绍

    主题:几种常用的S5编程软件简要介绍 楼主 2011-05-11 09:06:32 几种常用的S5编程软件说明: Step5 西门子嫡系产品: 肯定100%的满足你对S5全系列的开发.维护要求: DO ...

  10. c语言制作辅助,一种辅助C语言教学的展示设备的制作方法

    本实用新型涉及教学设备技术领域,具体涉及一种辅助c语言教学的展示设备. 背景技术: c语言是一门面向过程的.抽象化的通用程序设计语言,广泛应用于底层开发,c语言能以简易的方式编译.处理低级存储器,c语 ...

最新文章

  1. Foundation 框架
  2. TOPCODER SAM 686 div1 300
  3. 【java】带时区的时间格式化
  4. linux中spawn远程执行,linux 远程登录执行命令
  5. oracle pl/sql 基础
  6. java 判断是linux系统_java判断是window系统还是Linux系统,并获取其IP地址及文件上传 | 学步园...
  7. 前端知识整理 CSS盒模型
  8. 计算机科学与技术大学教程,21世纪高等学校计算机科学与技术规划教材:大学计算机基础教程...
  9. 帆软计算字符串中指定字符个数
  10. Php的入栈,PHP实现的栈数据结构示例【入栈、出栈、遍历栈】
  11. 给chrome手动安装github上插件
  12. iOS13 暗黑模式(Dark Mode)适配之OC版
  13. VAssistX失效后重新安装双击没反应
  14. react+clodop打印
  15. webgame php源码,最WEB游戏源码服务端(完整修改版).doc
  16. 【前端面经】面试:最快最全面的渗透应聘者真实水平
  17. uniapp 调用原生插件包含第三方SDK时抛NoClassDefFoundError异常
  18. (13.1.3.9)PMBOK之三:十大知识领域之采购管理
  19. win10 格式化 linux u盘,Win10怎么格式化u盘 Win10中对U盘格式化的两种常用方法
  20. 列出MSSQL所有数据库名、所有表名、所有字段名

热门文章

  1. BlackBerry视频播放编程
  2. 将 OneNote 2007 与文档管理系统集成
  3. 「汇编」加深理解段地址*10H(*16)必须是16的倍数
  4. 自研P2P镜像分发系统
  5. 通过kafka发送和接收消息
  6. mysql命令添加用户名和密码_怎么给mysql添加用户名和密码
  7. dayjs Timezone 设置默认时区
  8. Linux:黑客传说(开源精神)(转)
  9. Airflow Python工作流引擎的重要概念介绍
  10. 远程桌面连接怎么使用?