静态分析 第一课 静态分析介绍
本人是北邮19级学生,最近需要使用soot进行java静态分析,但是没有任何静态分析的基础,在北邮人论坛里学长给我推荐了B站南京大学的一个软件分析的网课,感触颇深
这是本人的个人笔记,记得不是很全,主要是为了自己能看得懂
下面这个是南京大学学长的笔记,我认为很有参考价值
https://blog.csdn.net/zhang971105/article/details/109046458
- PL和静态分析
- 为什么学习静态分析
- 什么是静态分析
- 静态分析特征和例子
PL
Programming Languages
分为三个部分:
- 理论:语言设计、类型系统、……
- 环境:编译器、Runtime system、……
- 应用:Program analysis、Program verification、Program synthesis(程序合成)
静态分析是PL下的一个分支
为什么学习静态分析
- 程序可靠性:空指针、内存泄露等
- 程序安全性:隐私信息泄露、注入攻击等
- 编译优化:死代码消除、code motion……
- 理解程序:IDE调用层次关系……
什么是静态分析
在运行一个程序前就分析一个程序的特征和行为
并不存在一个方法能准确地判断一个程序是否能满足某些复杂性质
“A