软件分析(1)

1.PL(progamming Language)跟静态分析的关系。

  • 在计算机领域中的编程语言中,语言核心(包括:命令式编程语言 函数式编程语言 逻辑式编程语言)是基本不变的,但是语用环境是变化繁多的,即应用领域和各类语言的不同之处是繁多的。
  • 静态分析是针对PL的应用,目的在于:
  1. 可靠性
  2. 安全性
  3. 编译优化
  4. 程序理解
  • 静态分析有利于理解:1.编程语言的语法和语义  2.写出更可靠 安全 高效的程序

个人的理解

  1. 该静态分析与逆向中的静态分析的区别和共同点
  • 共同点:都是静态
  • 区别:该领域更用于pwn?安全?而逆向的静态分析为了理解程序流程和作用

     2.Soundness(false negatives:漏报) 和 complete(false postives:误报)的关系

  • 宁可错杀,不可放过(可以有误报,不要有漏报)
  • 但是做不到精确杀,即莱斯定理,不存在确切,完美的分析,两者不可兼得,只能寻找平衡
  • 一般都是允许误报,不允许漏报。

     3.虽然没有完美的静态分析,但是有有用的静态分析

  • 在全面的情况下,在速度和精确之间有效平衡

      4.静态分析的两个步骤

  • 抽象化(abstraction):具体内容的各类情况,抽象化
  • 抽象的转化(over-approximation):抽象进行转化(运算)
  • 具体=>抽象,具体的变化=>抽象的变化

      5.抽象与具体的关系

  • 抽象里有各种具体结果
  • 因此,可能有实际上不出现的具体结果被考虑
  • 但同时,也可以反应出可能出现的错误(漏洞)

程序要点作业

1.what are the differences between static analysis and (dynamic) testing?

上边回答了

2.Understand soundness,completeness,false negatives,and false positives.

也回答了

3.why soundness is (usually)required by static analysis?

也回答了

4.how to understand abstraction and over-approximation?

也回答了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值