静态程序分析
文章平均质量分 88
罗博士
这个作者很懒,什么都没留下…
展开
-
SVFTools的约束图CG
文章目录指针分析的Andersen规则与SVF中的规则第零个例子第一个例子第二个例子第三个例子第四个例子SVFTools的约束图ConstraintGraphConstraintGraphConstraintGraph简称CG,是用来做指针分析的。根据四条规则,在PAG的基础上建立。在这个过程中,PAG是不变的,而CG则是有可能改变的。指针分析的Andersen规则与SVF中的规则使用集合符号,令ppp是一个指针,则pts(p)pts(p)pts(p)是ppp所有可能指向的对象的集合。例如源代码in原创 2021-03-23 09:16:26 · 836 阅读 · 0 评论 -
SVFTools的PAG图
SVFTools的PAG图第一个例子a+b第二个例子if第三个例子forPAG称为程序赋值图,记录了LLVMIR中变量的赋值依赖关系。本文通过若干个例子观察IR代码和PAG之间的关系。第一个例子a+b源代码void f(){ int a,b,c; a = 3; b = 5; c = a + b;}LLVMIR文件define dso_local void @f() #0 !dbg !7 {entry: %a = alloca i32, align 4原创 2021-03-16 11:26:01 · 1088 阅读 · 0 评论 -
SVFTools的SymbolTableInfo与PAG
文章目录SymbolTableInfo第一个例子第二个例子PAGPAG示例SymbolTableInfoSymbolTableInfo是SVFTools中的一个类,本文以下称为符号表。顾名思义,根据LLVMIR记录了一些东西。最主要的私有数据成员如下,注意这里简化了一些东西,去除了一些typedf和const,源代码其实并不完全是这样。 map<Value*, uint> valSymMap; ///< map a value to its sym id map<原创 2021-03-15 10:23:30 · 326 阅读 · 0 评论 -
SVFTools与LLVM的Basic Blocks实验
SVFTools与LLVM的Basic Block实验LLVM BB与Control Flow GraphSVFTools生成自定义的BB图本文根据南京大学静态程序分析课程中关于Control Flow Analysis的Basic Blocks的片段,对给定的源代码进行有关BB的实验。南京大学静态程序分析课程课件,其中第二课 Intermediate Representation有关于Basic Block与控制流的讲解。课件中给出了三地址码与BB控制流图,以下为课件中的截图。LLVM BB与Co原创 2021-03-08 17:36:31 · 1074 阅读 · 0 评论 -
SVFTools图基类的简单使用
文章目录SVFTools 图有关的基类三个基类工具模板自建图与SCC自建点边图子类SVFTools 图有关的基类三个基类SVFTools为图提供了三个基类,均为模板类,分别是GenericNode,GenericEdge,GenericGraphGenericNode, GenericEdge, GenericGraphGenericNode,GenericEdge,GenericGraph,对应节点、边与图类型(图是有向图)。其中边类最为简单,主要包含3个成员:template<class原创 2021-02-18 18:01:47 · 901 阅读 · 0 评论 -
SVF-tools安装笔记
SVF-tools安装笔记新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Ma原创 2020-12-26 11:32:19 · 2963 阅读 · 0 评论