随笔分类 - 软件分析
软件分析套餐,绝赞更新中
摘要:Soundness Conservative approximation: captures all program behaviors, or the analysis result models all possible executions of the program 然鹅 Academia
阅读全文
摘要:这一节主要讨论针对CFG中的路径的优化 Feasible & Realizable Paths Infeasible Paths: paths that do not correspond to actual executions Unrealizable Paths: paths whose "r
阅读全文
摘要:Datalog = Data + Logic,是声明式编程语言(Declarative Programming Language) Prolog的一个子集 Datalog最早作为数据库的查询语言出现,是非图灵完备的编程语言 语法 和数理逻辑的命题逻辑、谓词逻辑基本是一致的,如果看的教材和我一样是Ma
阅读全文
摘要:下面几节课都比较轻松,内容偏科普性质 Security Achieving some goals in the presence of adversaries 这个概括可以说是很简练了 统计意义下最常见的两类漏洞: Injection Errors Information leaks 这两者本质上都
阅读全文
摘要:CSA=Context Sensitive Analysis 上下文敏感分析 不敏感的分析认为所有语句的执行顺序无法区分,也就是没有上下文的概念 考虑如下代码片段 class A; A a = new A(); // o1 A b = new A(); // o2 A pa = func(a); A
阅读全文
摘要:PA=Pointer Analysis 指针分析 Motivation CHA方法实际上没有利用足够的信息(即实际上变量可能指向的对象所从属的类的范围可以进一步缩小),会引入假的调用边 Pointer Analysis PA是一种基础的静态分析,它要回答的问题是"某个指针p的值域可能是啥" 对于OO
阅读全文
摘要:CGC=Call Graph Construction Motivation 如果只做method内的分析,则任何包含function call的语句都需要保守分析(例如说默认不是常数) 这样是不利于进一步做优化的,因此引入Call Graph图对CFG作拓展 java call invokesta
阅读全文
摘要:这里的DFA可不是有限状态自动机( Data Flow Analysis 这一部分是比较重的重点...要好好看 或许需要补一补lattice(事实证明这一部分非常简单...) Data Flow Analysis 实际是要通过 How Application-Specific Data Flows
阅读全文
摘要:术语 IR = Intermediate Representation 代码的中间形式 AST = Abstract Semantic Tree 抽象语法树 IR 上节讲到的同态映射需要一个具体的载体,类比我们常常将n维线性空间同构到R^n上考虑,这里就引入了IR IR也是一种语言,可以作任意语言到
阅读全文
摘要:决定要好好开干了,于是有了这个系列的笔记 真是绝了,我连淑芬都没有专门的笔记 回想上学期的考试周开了CSAPP的大锅,这次考试周开了软件分析的大锅,考试周真是除了考试都好玩 术语 PLT = Programming language theory 编程语言理论 Static Analysis 静态分
阅读全文