首页 > 华企学院 > 网站基础 > 常用的程序静态分析技术

常用的程序静态分析技术

作者:华企商城小编  浏览量:106   发布时间:2014-11-10 11:31:24

   常用的程序静态分析技术

  (1)词法分析:从左至右一个字符一个字符的读入源程序,对构成源程序的字符流进行扫描,通过使用正则表达式匹配方法将源代码转换为等价的符号(Token) 流,生成相关符号列表,Lex为常用词法分析工具。

  (2)语法分析:判断源程序结构上是否正确,通过使用上下文无关语法将相关符号整理为语法树, Yacc为常用工具。

  (3)抽象语法树分析:将程序组织成树形结构,树中相关节点代表了程序中的相关代码,目前已有javacc/ Antlra等抽象语法树生成工具。

  (4)语义分析:对结构上正确的源程序进行上下文有关性质的审查。

  (5)控制流分析:生成有向控制流图,用节点表示基本代码块,节点间的有向边代表控制流路径,反向边表示可能存在的循环;还可生成函数调用关系图,表示函数间的嵌套关系。

  (6)数据流分析:对控制流图进行遍历,记录变量的初始化点和引用点,保存相切片关数据信息。

  (7)污点分析:基于数据流图判断源代码中哪些变量可能受到攻击,是验证程序输入、识别代码表达缺陷的关键。

  (8)无效代码分析,根据控制流图可分析孤立的节点部分为无效代码。

  程序静态分析是在不执行程序的情况下对其进行分析的技术,简称为静态分析。而程序动态分析则是另外一种程序分析策略,需要实际执行程序。大多数情况下,静态分析的输入都是源程序代码,只有极少数情况会使用目标代码。静态分析这一术语一般用来形容自动化工具的分析,而人工分析则往往叫做程序理解。

  静态分析越来越多地被应用到程序优化、软件错误检测和系统理解领域。Coverity Inc.的软件质量检测产品就是利用静态分析技术进行错误检测的成功代表。国内某软件公司的闪蝶(BlueMropho)代码分析平台,是利用程序静态分析技术专注于大型机遗留系统的代码理解领域,尤其擅长分析千万行代码规模级的COBOL系统。文章由,企业建站程序http://www.netshop168.com/,整理发布。

华企商城更多商品介绍:dedecms织梦系统    搜客网络营销广告信息发布软件  易推微信营销工具

文章转载请注明出处:http://www.netshop168.com/article-272.html


精品推荐
下一篇:形式化静态分析中用到的实现技术
上一篇:程序静态分析的特点
相关文章

华人企业网
关注微信公众号
享受更多优惠

 

消费者最喜爱的网站TOP100 | | 网络社会征信网 | 北京工商 | 法律顾问 | 京ICP备07504386号-6 | 网站地图