静态分析技术

程序静态分析是一种在不执行程序的情况下对程序行为进行分析的理论、技术,简称为静态分析。
程序动态分析则是另一种程序分析策略,它需要实际执行程序。

静态分析这一术语一般用来形容邹东华工具的分析,而人工分析则往往叫做程序理解。

所谓静态分析,就是从反汇编出来的程序清单上分析程序流程,了解模块完成的功能。

形式化方法

程序分析中的形式化方法一般指利用纯粹严格的数学方法对软件、硬件进行分析的理论及技术。
形式化静态分析中用到的实现技术有:

  1. 模型检查假设系统是有限状态的、或者可以通过抽象规则为有限状态
  2. 抽象解析将每条语句的影响模型化为一个抽象机器的状态。【抽象解释当且仅当抽象机器中的每一个性质都能与原始系统中的性质正确映射时,才被称为可靠的】
  3. 断言
文件类型分析

常用工具:FileInfo、TYP、Gtw

文件分析是静态分析程序的第一步,通过相关工具显示欲调试文件的信息,比如他是用什么语言写的,是否加壳等。

静态分析工具

静态分析程序不需要执行所测试的程序,它扫描所测试程序的中文,堆程序的数据流和控制流进行分析,然后送出测试报告。通常,它具有:

  1. 对模块中的所有变量检查其是否都已定义,是否引用了未定义的变量,是否有已赋过值但从未使用的变量。【实现方法是建立变量的交叉引用表】
  2. 检查模块接口的一致性
  3. 检查在逻辑上可能有错误的结构以及多余的不可达的程序段
  4. 建立“变量/语句交叉引用表”、“子程序调用顺序表”、“公用区/子程序交叉引用表”等,利用他们找出变量错误有可能影响到那些语句,影响到那些其他变量等。
  5. 检查所测程序违反编程标准的错误
  6. 对一些静态特性的统计功能
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值